DevExpress(4): ASPxGridView随笔

DevExpress版本14.1

 

(1)DateTime类型如何格式化展示?

首先要使用GridViewDataDateColumn来展示日期,然后格式化日期展示即可:)

<dx:GridViewDataDateColumn Caption="入职日期" FieldName="BeginDate" VisibleIndex="6">
    <PropertiesDateEdit DisplayFormatString="yyyy-MM-dd"/>
</dx:GridViewDataDateColumn>

 

(2)为什么在Client浏览器端获取GridView的焦点行,即使用GetFocusedRowIndex获取不到焦点行下标呢?

必须设置GridView允许行获取焦点,在GridView的定义中添加如下一段即可:)

<SettingsBehavior AllowFocusedRow="True" />

此时JS调用gridView.GetFocusedRowIndex()就可以获得正确的行号了。

 

(3)如何在GridView表格中添加CustomButton自定义动作,因为我不想用GridView默认的编辑、保存动作啊?

先看看效果:

查看和删除是我自定义的CustomButton,点击查看,弹出Popup窗口展示详细信息;点击删除,提示是否确定,然后删除。

添加自定义CustomButton并不复杂,代码如下:

<dx:GridViewCommandColumn Caption="操作" Width="140px" HeaderStyle-HorizontalAlign="Center"
                            CellStyle-HorizontalAlign="Center">
    <CustomButtons>
        <dx:GridViewCommandColumnCustomButton Text="查看" ID="btnEdit" />
        <dx:GridViewCommandColumnCustomButton Text="删除" ID="btnDelete" />
    </CustomButtons>
    <HeaderStyle HorizontalAlign="Center"/>
    <CellStyle HorizontalAlign="Center"/>
</dx:GridViewCommandColumn>

删除事件比较好处理,服务端可通过e.VisibleIndex获取焦点行,然后grdView.GetRowValues(e.VisibleIndex, "Code").ToString();可获得单元格的值。

问题是弹出窗口的功能,CustomButton因为是Callback部分提交,所以访问不到GridView以外的控件。

解决办法是在JS中获取到当前焦点行的信息,然后调用要更新的控件的PerformCallback方法(也可以Postback到服务端)。

JS可以通过GetFocusedRowIndex获取当前焦点行,如果要获取某列的数据:

function OnGridCustmButtonClick(s, e) {
    grid.GetRowValues(grid.GetFocusedRowIndex(), 'Code;Name', OnGetRowValues); //'Code;Name'是GridView中列的FieldName;这里必须填两列,否则会报错
    e.processOnServer = false; // Click事件不提交到服务端
}
function OnGetRowValues(values) {
    popEdt.PerformCallback(values[0]); // 通过ASPxPopupControl的Callback将Code的值提交到服务端
    popEdt.Show();
}

在服务端通过PopupWindowCallbackArgs的Parameter属性即可获得Code的值。

posted @ 2015-02-12 13:57  wuxiaochao  阅读(1567)  评论(0编辑  收藏  举报