AspxGridView使用手记


AspxGridView使用手记

一、  基本使用方法  4

1.导入Dll文件   4

2.Asp.Net页面控件注册 4

3. Asp.Net页面控件声明    5

4.删除licenses.licx协议文件(盗版)   5

5.功能概述  5

二、  绑定数据(单层)    5

1.使用DataSource属性绑定DataTable 5

2.使用DataSourceID属性绑定SqlDataSource   6

3.使用DataSourceID属性绑定ObjectDataSource    6

4.使用DataSourceID属性绑定LinqDataSource  9

5.使用DataSourceID属性绑定XmlDataSource   10

三、  绑定数据(嵌套树)   10

1.主从数据绑定    10

四、  客户端行维护(新增、修改、删除等)   12

1.编辑状态  12

2.新增    13

3.修改    13

4.删除    13

五、  服务器端行维护(新增、修改、删除等)  13

1.编辑状态  13

2.新增    13

3.修改    15

4.删除    16

六、  数据保存    17

七、  客户端行选择  17

1.选择页面上所有行  17

2.选中指定行或所有行 18

3.获取选中行 18

4.取消页面上所有行的选择   19

5.取消指定行或所有行的选择  19

八、  服务器端行选择 19

1.可选择性设置    19

2.Selection属性   19

九、  客户端行定位  20

1.将焦点转移到编辑行的指定列 20

2.获取焦点行号    20

3.将某行置为可见(未验证)  20

4.跳转到指定页    20

十、  服务器端行定位 21

1.焦点行   21

2.将某行置为可见   21

3.跳转到指定页    21

十一、 客户端数据搜索 21

1.数据过滤  21

十二、 服务端数据搜索 22

1.数据过滤  22

2.数据搜索  22

十三、 分页  23

1.分页条相关属性   23

2.更改分页条按钮属性 26

3.与分页相关操作   26

十四、 客户端排序   26

1.使用SortBy方法排序  26

十五、 服务器端排序  27

1.排序设置  27

2.使用SortBy方法排序  27

3.直接操作GridViewDataColumn排序  28

4.使用GetSortedColumns方法取排序栏位 28

十六、 服务器端数据分组    28

1.数据分组的前提条件 28

2.使用GroupBy方法实现数据分组 28

3.分组的展开与折叠  29

4.判断分组行是否展开 29

5.数据分组的相关设置 29

6.按分组值排序    30

十七、 客户端数据分组 30

1.使用GroupBy方法实现数据分组 30

2.分组的展开与折叠  30

3.判断分组行是否展开 31

4.判断是分组行还是数据行   31

5.用户拖动栏位到分组带实现分组    31

十八、 数据导出    31

1.内置数据导出的前提条件   31

2.支持的数据导出类型 32

3. ASPxGridViewExporter重要属性 32

4.主从ASPxGridView数据导出    32

5.导出到Pdf时中文乱码问题的解决  33

十九、 报表打印    33

二十、 懒加载 33

二十一、    客户端栏位取值与赋值  33

1.使用GetPageRowValues取当前页指定栏位值   33

2.使用GetRowValues取指定行指定栏位值   34

3.使用GetSelectedFieldValues取选中行指定栏位值 34

4.取栏位实例 34

5.使用GetColumnsCount取栏位总数    34

6.使用MoveColumn隐藏和移动栏位   34

7. 使用GetRowKey取行主键值 35

二十二、    服务器端栏位取值与赋值 35

1.取行值   35

2.取列值   36

二十三、    栏位编辑风格  38

1.AspxGridView栏位类型  38

2.GridViewColumn服务器端重要属性    38

3.GridViewColumn服务器端方法  40

4.GridViewCommandColumn:命令按钮列   41

5. GridViewDataColumn:基本数据列 42

6.GridViewDataButtonEditColumn:编辑按钮列    45

7.GridViewDataCheckColumn: 复选框列 45

8.GridViewDataTextColumn:文本列    45

二十四、    栏位格式化   45

二十五、    固定列 45

二十六、    栏位拖动    45

二十七、    栏位合计    46

二十八、    栏位初始值   46

二十九、    栏位可编辑性  46

三十、 栏位数据校验  46

1.行数据校验(编辑状态)   46

三十一、    客户端事件   49

三十二、    服务器端事件  49

1.服务器事件索引   49

2.AutoFilterCellEditorCreate    49

3.AutoFilterCellEditorInitialize    50

4.BeforeGetCallbackResult   50

5.BeforePerformDataSelect   51

6.CancelRowEditing  51

7. CellEditorInitialize 51

7. ClientLayout 52

8. CustomButtonCallback 52

9. CustomCallback   53

10. CustomColumnDisplayText 54

11. CustomColumnGroup   54

12. CustomColumnSort    55

13. CustomDataCallback  56

14. CustomErrorText 57

15. CustomGroupDisplayText  57

16. CustomJSProperties  58

17. CustomSummaryCalculate  58

三十三、    快捷键 59

三十四、    样式  59

1.GridViewStyles重要属性    59

2. GridViewAlternatingRowStyle重要属性  59

三十五、    AspxGridView服务器端重要属性    60

三十六、    AspxGridView服务器端重要方法    60

三十七、    GridViewColumnCollection服务器端重要属性    61

三十八、    AspxGridView客户端重要属性 61

三十九、    AspxGridView客户端常用方法 64

1.PerformCallback   77

四十、 AspxGridView客户端非常用方法    78

四十一、    ASPxClientGridViewColumn(客户端栏位)常用属性 79

四十二、    嵌套AspxGridView的特殊控制 80

1.控制在同一时间只允许一行展开    80

2.SettingsDetail属性设置    80

3.嵌套AspxGridView树展开与折叠(客户端) 80

四十三、    AspxGridView客户端源代码可借鉴点  81

四十四、    AspxGridView服务器端源代码可借鉴点 81

四十五、    BUG 81

四十六、    附录  81

1.格式化标识符    81

2.字符串转为枚举型  83

一、  基本使用方法

1.导入Dll文件

DevExpress.Web.ASPxGridView.v9.1.dll

DevExpress.Web.ASPxEditors.v9.1.dll

DevExpress.Web.v9.1.dll

DevExpress.Data.v9.1.dll文件

2.Asp.Net页面控件注册

<%@ Register Assembly="DevExpress.Web.v9.1, Version=9.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"

    Namespace="DevExpress.Web"TagPrefix="dxwgv"%>

<%@ Register Assembly="DevExpress.Web.ASPxEditors.v9.1, Version=9.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"

    Namespace="DevExpress.Web.ASPxEditors"TagPrefix="dxe"%>

<%@ Register Assembly="DevExpress.Web.ASPxGridView.v9.1, Version=9.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"

    Namespace="DevExpress.Web.ASPxGridView"TagPrefix="dxwgv"%>

<%@ Register Assembly="DevExpress.Data.v9.1, Version=9.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"

    Namespace="DevExpress.Data"TagPrefix="dxwgv"%>

3. Asp.Net页面控件声明

<dxwgv:ASPxGridView ID="ASPxGridView1"runat="server">

        <Columns>

            <dxwgv:GridViewDataColumn Caption="LogID"FieldName="LogID"/>

            <dxwgv:GridViewDataColumn Caption="发生时间"FieldName="OCCDatetime"/>

            <dxwgv:GridViewDataColumn Caption="事件"FieldName="Event"/>

            <dxwgv:GridViewDataColumn Caption="类型"FieldName="Type"/>

            <dxwgv:GridViewDataColumn Caption="创建人"FieldName="Creator"/>

            <dxwgv:GridViewDataColumn Caption="创建日期"FieldName="CreateDate"/>

            <dxwgv:GridViewDataColumn Caption="备注"FieldName="Remark"/>           

        </Columns>

        </dxwgv:ASPxGridView>

4.删除licenses.licx协议文件(盗版)

5.功能概述

(1)丰富的内置样式

(2)内建的 Ajax 操作

(3)提供客户端 API

(4)内置的排序,分页,分组,过滤功能,无需另外编码

(5)支持多种现场编辑模式: inline, EditForm, EditFormAndDisplayRow, PopupEditForm

(6)可定制模板,支持卡片视图、主从表视图

二、  绑定数据(单层)

可以通过给AspxGridView的DataSource属性或DataSourceID赋值来实现数据绑定。

所支持的数据源类型包括:SqlDataSource、ObjectDataSource、XmlDataSource、AccessDataSource、SiteMapDatasource、LinqDataSource

1.使用DataSource属性绑定DataTable

staticstring_connectionstring = "Data Source=192.168.1.1 nitial Catalog=SDERP;UID=sa;Password=xxxx”

DataSet currentDs = newDataSet();

using(SqlConnection currentConn = newSqlConnection(_connectionstring))

{

    //获取数据

    currentConn.Open();

    SqlDataAdapter currentSda = newSqlDataAdapter("select row_number() over(order by LogID) as RowNumber,* from Sys_Log", currentConn);

    currentSda.Fill(currentDs, "Sys_Log");

    this.ASPxGridView1.DataSource = currentDs.Tables["Sys_Log"];

    this.ASPxGridView1.DataBind();

    currentConn.Close();

}

2.使用DataSourceID属性绑定SqlDataSource

<dxwgv:ASPxGridView ID="ASPxGridView1"runat="server"DataSourceID="SqlDataSource1">

<Columns>

    <dxwgv:GridViewDataColumn Caption="LogID"FieldName="LogID"/>

    <dxwgv:GridViewDataColumn Caption="发生时间"FieldName="OCCDatetime"/>

    <dxwgv:GridViewDataColumn Caption="事件"FieldName="Event"/>

    <dxwgv:GridViewDataColumn Caption="类型"FieldName="Type"/>

    <dxwgv:GridViewDataColumn Caption="创建人"FieldName="Creator"/>

    <dxwgv:GridViewDataColumn Caption="创建日期"FieldName="CreateDate"/>

    <dxwgv:GridViewDataColumn Caption="备注"FieldName="Remark"/>           

</Columns>

</dxwgv:ASPxGridView>

<asp:SqlDataSource

  id="SqlDataSource1"

  runat="server"

  DataSourceMode="DataReader"

  ConnectionString="Data Source=192.168.1.252;Initial Catalog=SDERP;UID=sa;Password=XXXXXXXXX"

  SelectCommand="select row_number() over(order by LogID) as RowNumber,* from Sys_Log">

</asp:SqlDataSource>

3.使用DataSourceID属性绑定ObjectDataSource

<dxwgv:ASPxGridView ID="ASPxGridView1"runat="server"DataSourceID="ObjectDataSource1">

<Columns>

    <dxwgv:GridViewDataColumn Caption="LogID"FieldName="LogID"/>

    <dxwgv:GridViewDataColumn Caption="发生时间"FieldName="OCCDatetime"/>

    <dxwgv:GridViewDataColumn Caption="事件"FieldName="Event"/>

    <dxwgv:GridViewDataColumn Caption="类型"FieldName="Type"/>

    <dxwgv:GridViewDataColumn Caption="创建人"FieldName="Creator"/>

    <dxwgv:GridViewDataColumn Caption="创建日期"FieldName="CreateDate"/>

    <dxwgv:GridViewDataColumn Caption="备注"FieldName="Remark"/>           

</Columns>

</dxwgv:ASPxGridView>

<asp:objectdatasource

  id="ObjectDataSource1"

  runat="server"

  selectmethod="GetAllLog"

  typename="AspxGridView.SysLogDAL"/>

其中SysLogDAL.cs代码如下:

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Linq;

usingSystem.Web;

usingSystem.Data;

usingSystem.Data.SqlClient;

usingSystem.Collections;

namespaceAspxGridView

{

    publicclassSysLogDAL

    {

        staticstring_connectionstring = "Data Source=192.168.1.252;Initial Catalog=SDERP;UID=sa;Password=XXXXXXXXX";

        publicstaticICollection GetAllLog()

        {

            ArrayList al = newArrayList();

            DataSet currentDs = newDataSet();

            using(SqlConnection currentConn = newSqlConnection(_connectionstring))

            {

                //获取数据

                currentConn.Open();

                SqlDataAdapter currentSda = newSqlDataAdapter("select * from Sys_Log", currentConn);

                currentSda.Fill(currentDs, "Sys_Log");

                DataTable dt = currentDs.Tables["Sys_Log"];

                foreach(DataRow dr indt.Rows)

                {

                    SysLogEntry e = newSysLogEntry();

                    e.LogID = Int32.Parse(dr["LogID"].ToString());

                    e.OCCDatetime = DateTime.Parse(dr["OCCDatetime"].ToString());

                    e.Event = dr["Event"].ToString();

                    e.Type = dr["Type"].ToString();

                    e.Creator = dr["Creator"].ToString();

                    e.CreateDate = DateTime.Parse(dr["CreateDate"].ToString());

                    e.Remark = dr["Remark"].ToString();

                    al.Add(e);

                }

                currentConn.Close();

            }

            returnal;

        }

    }

}

其中SysLogEntry.cs代码如下:

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Linq;

usingSystem.Web;

namespaceAspxGridView

{

    publicclassSysLogEntry

    {

        publicintLogID

        {

            get;

            set;

        }

        publicDateTime OCCDatetime

        {

            get;

            set;

        }

        publicstringEvent

        {

            get;

            set;

        }

        publicstringType

        {

            get;

            set;

        }

        publicstringCreator

        {

            get;

            set;

        }

        publicDateTime CreateDate

        {

            get;

            set;

        }

        publicstringRemark

        {

            get;

            set;

        }

    }

}

4.使用DataSourceID属性绑定LinqDataSource

<dxwgv:ASPxGridView ID="ASPxGridView1"runat="server"DataSourceID="LinqDataSource1">

<Columns>

    <dxwgv:GridViewDataColumn Caption="LogID"FieldName="LogID"/>

    <dxwgv:GridViewDataColumn Caption="发生时间"FieldName="OCCDatetime"/>

    <dxwgv:GridViewDataColumn Caption="事件"FieldName="Event"/>

    <dxwgv:GridViewDataColumn Caption="类型"FieldName="Type"/>

    <dxwgv:GridViewDataColumn Caption="创建人"FieldName="Creator"/>

    <dxwgv:GridViewDataColumn Caption="创建日期"FieldName="CreateDate"/>

    <dxwgv:GridViewDataColumn Caption="备注"FieldName="Remark"/>           

</Columns>

</dxwgv:ASPxGridView>

<asp:LinqDataSource ID="LinqDataSource1"runat="server"

    ContextTypeName="AspxGridView.SysLogDAL"TableName="SysLogEntrys">

</asp:LinqDataSource>

其中AspxGridView.SysLogDAL有一个SysLogEntrys的属性,代码如下(其它代码同例3)

publicICollection SysLogEntrys

{

    get

    {

        returnthis.GetAllLog(); ;

    }

}

5.使用DataSourceID属性绑定XmlDataSource

<dxwgv:ASPxGridView ID="ASPxGridView1"runat="server"DataSourceID="XmlDataSource1">

<Columns>

    <dxwgv:GridViewDataColumn Caption="LogID"FieldName="LogID"/>

    <dxwgv:GridViewDataColumn Caption="发生时间"FieldName="OCCDatetime"/>

    <dxwgv:GridViewDataColumn Caption="事件"FieldName="Event"/>

    <dxwgv:GridViewDataColumn Caption="类型"FieldName="Type"/>

    <dxwgv:GridViewDataColumn Caption="创建人"FieldName="Creator"/>

    <dxwgv:GridViewDataColumn Caption="创建日期"FieldName="CreateDate"/>

    <dxwgv:GridViewDataColumn Caption="备注"FieldName="Remark"/>           

</Columns>

</dxwgv:ASPxGridView>

<asp:XmlDataSource ID="XmlDataSource1"runat="server"DataFile="~/Sys_Log.xml"></asp:XmlDataSource>

其中Sys_Log.xml文件内容如下

<?xml version=‘1.0‘encoding=‘gb2312‘?>

<data>

    <row LogID="1"OCCDatetime="2010-06-09 10:10:11.083"Event="用户【杨东】登陆系统"Type="登陆信息"Creator="sa"CreateDate="2010-10-21 11:23:08.090"Remark=""/>

</data>

三、  绑定数据(嵌套树)

1.主从数据绑定

AspxGridView允许嵌套。

可以通过设置主AspxGridView的ShowDetailRow=true来开启嵌套。<SettingsDetail ShowDetailRow="true"/>。

子AspxGridView定义在父AspxGridView的<Templates><DetailRow>标签中。

例:Asp.Net代码

<dxwgv:ASPxGridView ID="MasterGrid"runat="server"KeyFieldName="TaskCode"ClientInstanceName="mastergrid"DataSourceID="SqlDataSource1"

 >       

<SettingsBehavior AllowMultiSelection="true"/>

<Columns>

    <dxwgv:GridViewDataColumn Caption="任务编号"FieldName="TaskCode"/>

    <dxwgv:GridViewDataColumn Caption="任务名称"FieldName="TaskName"/>

    <dxwgv:GridViewDataColumn Caption="任务类型"FieldName="TaskType"/>

    <dxwgv:GridViewDataColumn Caption="计划工时"FieldName="PlanHours"/>

    <dxwgv:GridViewDataColumn Caption="计划开始时间"FieldName="PlanBeginDate"/>

    <dxwgv:GridViewDataColumn Caption="计划结束时间"FieldName="PlanEndDate"/>

    <dxwgv:GridViewDataColumn Caption="备注"FieldName="Remark"/>    

    <dxwgv:GridViewCommandColumn Caption="操作"Visible="true">

        <UpdateButton Text="保存"Visible="true"/>

        <NewButton Text="新增"Visible="true"/>

        <CancelButton Text="取消"Visible="true"/>

        <ClearFilterButton Text="清除"Visible="true"/>

        <SelectButton Text="选择"Visible="true"/>

    </dxwgv:GridViewCommandColumn>     

</Columns>

<SettingsDetail ShowDetailRow="true"/>

<Templates>

    <DetailRow>

        <dxwgv:ASPxGridView ID="DetailGrid"runat="server"KeyFieldName="ID"ClientInstanceName="detailgrid"DataSourceID="SqlDataSource2"

         OnBeforePerformDataSelect="DetailGrid_BeforePerformDataSelect">

            <Columns>

                <dxwgv:GridViewDataColumn Caption="ID"FieldName="ID"/>

                <dxwgv:GridViewDataColumn Caption="任务编号"FieldName="TaskCode"Visible="false"/>

                <dxwgv:GridViewDataColumn Caption="子任务名称"FieldName="ChildTaskName"/>

                <dxwgv:GridViewDataColumn Caption="执行人"FieldName="ExecuteUser"/>

                <dxwgv:GridViewDataColumn Caption="计划工时"FieldName="PlanHours"/>

                <dxwgv:GridViewDataColumn Caption="计划开始时间"FieldName="PlanBeginDate"/>

                <dxwgv:GridViewDataColumn Caption="计划结束时间"FieldName="PlanEndDate"/>

            </Columns>

            <SettingsDetail IsDetailGrid="true"/>

        </dxwgv:ASPxGridView>

    </DetailRow>

</Templates>

</dxwgv:ASPxGridView>

<asp:ObjectDataSource ID="ObjectDataSource_Type"runat="server"SelectMethod="GetUsers"

TypeName="AspxGridView.SysUser">       

</asp:ObjectDataSource>

<asp:SqlDataSource

  id="SqlDataSource1"

  runat="server"

  DataSourceMode="DataSet"

  ConnectionString="Data Source=192.168.1.252;Initial Catalog=SDERP;UID=sa;Password=shangdaosoft"

  SelectCommand="select * from TM_Task_Master"

  >         

</asp:SqlDataSource>

<asp:SqlDataSource

  id="SqlDataSource2"

  runat="server"

  DataSourceMode="DataSet"

  ConnectionString="Data Source=192.168.1.252;Initial Catalog=SDERP;UID=sa;Password=shangdaosoft"

  SelectCommand="select * from TM_Task_Detail where TaskCode = @TaskCode"

  >

  <SelectParameters>

    <asp:SessionParameter Name="TaskCode"SessionField="TaskCode"/>

  </SelectParameters>         

</asp:SqlDataSource>

C#代码:

//子AspxGridView数据绑定

protectedvoidDetailGrid_BeforePerformDataSelect(objectsender, EventArgs e)

{

    Session["TaskCode"] = (sender asASPxGridView).GetMasterRowKeyValue();

}

四、  客户端行维护(新增、修改、删除等)

1.编辑状态

(1)进入编辑状态

在调用AddNewRow()时或点击【新增】按钮自动进入编辑状态

调用StartEditRow()或点击【编辑】按钮进入编辑状态

(2)取消编辑状态

点击【取消】按钮或【保存按钮】自动取消编辑状态

调用CancelEdit()或UpdateEdit()取消编辑状态

2.新增

新增行方法:AddNewRow()

function AddNewRow();

3.修改

调用StartEditRow()使行进入编辑状态

function StartEditRow(visibleIndex : int);

4.删除

调用DeleteRow方法实现数据删除。

语法:function DeleteRow(visibleIndex : int);

五、  服务器端行维护(新增、修改、删除等)

1.编辑状态

(1)进入编辑状态

在调用AddNewRow()时或点击【新增】按钮自动进入编辑状态

调用StartEditRow()或点击【编辑】按钮进入编辑状态

(2)取消编辑状态

点击【取消】按钮或【保存按钮】自动取消编辑状态

调用CancelEdit()或UpdateEdit()取消编辑状态

2.新增

(1)在新增、修改、删除行前应设置KeyFieldName属性,否则无法执行行维护。

(2)编辑模式的设置(SettingsEditing.Mode属性,GridViewEditingMode类型)

Inline:在当前行上直接编辑(类似grid)

EditForm:当前行转化为表单,嵌入在行中

EditFormAndDisplayRow:同EditForm,但保留当前行

PopupEditForm: 弹出窗口编辑

(3)新增行的位置

SettingsEditing.NewItemRowPosition属性用来指定新增行的位置。GridViewNewItemRowPosition枚举型,可取值:Top、Bottom。默认为Top。

当取值为Top时,在当前页第一行新增;当取值为Bottom时,在当前页最后一行新增。

(4)如果使用SqlDataSource作为数据源,DataSourceMode=”DataSet”才可更新数据(插入、修改、删除),DataSourceMode=”datareader”时不可更新数据。同时必须配置InsertCommand属性。

(5)新增行方法:AddNewRow()

//新增数据行

protectedvoidbtnServerAddRow_Click(objectsender, EventArgs e)

{

    stringeditMode = this.ddlEditMode.SelectedValue;

    GridViewEditingMode gridViewEditingMode;

    switch(editMode)

    {

        case"Inline":

            gridViewEditingMode = GridViewEditingMode.Inline;

            break;

        case"EditForm":

            gridViewEditingMode = GridViewEditingMode.EditForm;

            break;

        case"EditFormAndDisplayRow":

            gridViewEditingMode = GridViewEditingMode.EditFormAndDisplayRow;

            break;

        case"PopupEditForm":

            gridViewEditingMode = GridViewEditingMode.PopupEditForm;

            break;

        default:

            gridViewEditingMode = GridViewEditingMode.Inline;

            break;

    }

    this.ASPxGridView1.SettingsEditing.Mode = gridViewEditingMode;

    this.ASPxGridView1.AddNewRow();

}

新增行后保存数据方法示例

可以直接点内置的【保存】按钮保存数据。

<dxwgv:ASPxGridView ID="ASPxGridView1"runat="server"KeyFieldName="LogID"DataSourceID="SqlDataSource1"

>       

<Columns>

    <dxwgv:GridViewDataColumn Caption="LogID"FieldName="LogID"ReadOnly="false"/>

    <dxwgv:GridViewDataColumn Caption="发生时间"FieldName="OCCDatetime"ReadOnly="false"/>

    <dxwgv:GridViewDataColumn Caption="事件"FieldName="Event"/>

    <dxwgv:GridViewDataColumn Caption="类型"FieldName="Type"/>

    <dxwgv:GridViewDataColumn Caption="创建人"FieldName="Creator"/>

    <dxwgv:GridViewDataColumn Caption="创建日期"FieldName="CreateDate"/>

    <dxwgv:GridViewDataColumn Caption="备注"FieldName="Remark"/>     

    <dxwgv:GridViewCommandColumn Caption="操作"Visible="true">

        <UpdateButton Text="保存"Visible="true"/>

        <NewButton Text="新增"Visible="true"/>

    </dxwgv:GridViewCommandColumn>     

</Columns>

</dxwgv:ASPxGridView>

<asp:SqlDataSource

  id="SqlDataSource1"

  runat="server"

  DataSourceMode="DataSet"

  ConnectionString="Data Source=192.168.1.252;Initial Catalog=SDERP;UID=sa;Password=XXXXXXXXX"

  SelectCommand="select * from Sys_Log"

  InsertCommand="Insert into Sys_Log(OCCDatetime,Event,Type,Creator,CreateDate,Remark) values(@OCCDatetime,@Event,@Type,@Creator,@CreateDate,@Remark)">

  <InsertParameters>

    <asp:Parameter Name="OCCDatetime"Type="DateTime"/>

    <asp:Parameter Name="Event"Type="String"/>

    <asp:Parameter Name="Type"Type="String"/>

    <asp:Parameter Name="Creator"Type="String"/>

    <asp:Parameter Name="CreateDate"Type="DateTime"/>

    <asp:Parameter Name="Remark"Type="String"/>          

  </InsertParameters>

</asp:SqlDataSource>

也可以调用AspxGridView的UpdateEdit方法实现保存。

例:

protectedvoidbtnServerSave_Click(objectsender, EventArgs e)

{

    this.ASPxGridView1.UpdateEdit();//保存数据

    this.ASPxGridView1.CancelEdit();//取消编辑状态

}

3.修改

(1)必要条件:数据源必须支持更新(如SqlDataSource配置了UpdateCommand), 必须有主键。

(2)调用StartEdit方法使行进入编辑状态

可以调用UpdateEdit方法保存数据,或调用CancelEdit方法取消编辑状态。

也可以显示出内置的【编辑】按钮让用户点击进入编辑状态。

例:

intfirstSelectedRowIndex =-1;

if(this.ASPxGridView1.VisibleRowCount <= 0) return;

//取选中的第一行

do

{

    firstSelectedRowIndex++;

    if(this.ASPxGridView1.Selection.IsRowSelected(firstSelectedRowIndex))

    {

        break;

    }

while(firstSelectedRowIndex >= 0 || firstSelectedRowIndex >= this.ASPxGridView1.VisibleRowCount);

if(firstSelectedRowIndex == -1)

{

    firstSelectedRowIndex = 0;

}

intlogID = (int)(this.ASPxGridView1.GetRowValues(firstSelectedRowIndex, "LogID"));

this.ASPxGridView1.MakeRowVisible(logID);//使指定行可见

this.ASPxGridView1.FocusedRowIndex = 0;//使指定行成为当前行

this.ASPxGridView1.Selection.UnselectAll();//取消所有行的选择

this.ASPxGridView1.Selection.SelectRow(0);//选中第一行

this.ASPxGridView1.StartEdit(firstSelectedRowIndex);//使指定行进入编辑状态

4.删除

(1)如果数据源不支持删除则无法执行。必须有主键才能删除(KeyFieldName)。

(2)可调用DeleteRow方法实现数据删除。DeleteRow成功执行后会将数据从数据库中删除。调用DeleteRow方法会首先触发RowDeleting事件(可以在此事件中阻止删除),执行后会触发RowDeleted事件。终端用户还可以通过点击内置的【删除】按钮实现删除。

DeleteRow语法:

Void DeleteRow(intvisibleIndex)

参数visibleIndex表示行号。

RowDeleting事件的声明原型:

voidASPxGridView1_RowDeleting(objectsender, DevExpress.Web.Data.ASPxDataDeletingEventArgs e)

可以通过修改ASPxDataDeletingEventArgs.Cancel=true来阻止删除。

DevExpress.Web.Data.ASPxDataDeletingEventArgs属性:

Cancel:bool,是否取消删除。可读写。

Keys:OrderedDictionary,要删除行的主键栏位值。只读。

Values: OrderedDictionary,要删除行的非主键(实际上是所有栏位)栏位值。只读。

例:

//删除行前事件

protectedvoidASPxGridView1_RowDeleting(objectsender, DevExpress.Web.Data.ASPxDataDeletingEventArgs e)

{

    for(inti = 0; i < e.Keys.Count; i++)

    {

        if(Int32.Parse(e.Keys[i].ToString()) > 20000)

        {

            e.Cancel = true;

            break;

        }

    }

}

RowDeleted事件的声明原型:

voidASPxGridView1_RowDeleted(objectsender, DevExpress.Web.Data.ASPxDataDeletedEventArgs e)

可以在此事件中获取删除时出现的异常并按自己的方法处理异常,或记录成功删除的行数。

DevExpress.Web.Data.ASPxDataDeletedEventArgs属性包括:

AffectedRecords:int,删除影响到的行数。只读。

Exception:Exception,删除数据期间发生的异常。只读。

ExceptionHandled:bool,是否已处理异常。可读写。

Keys:OrderedDictionary,要删除行的主键栏位值。只读。

Values: OrderedDictionary,要删除行的非主键(实际上是所有栏位)栏位值。只读。

六、  数据保存

调用UpdateEdit方法保存数据。或调用BeginUpdate()和EndUpdate()保存数据。

七、  客户端行选择

1.选择页面上所有行

(1)SelectAllRowsOnPage方法

语法1:voidSelectAllRowsOnPage()

语法2:voidSelectAllRowsOnPage(boolselected)

参数:selected:选择或取消选择

2.选中指定行或所有行

(1)SelectRows方法

语法1: voidSelectRows()//选择所有记录(包括不是当前页的记录)

语法2: voidSelectRows(intvisibleIndex)//选择指定行(必须设置KeyFieldName)

语法3: voidSelectRows(int32[] visibleIndces)

语法4: voidSelectRows(intvisibleIndex,boolselected)

语法5: voidSelectRows(int32[] visibleIndces,boolselected)

例:选中第1-10行

varrows = newArray();

for(vari = 0; i < 10; i++) {

    rows[i] = i;

}

grid.SelectRows(rows);

(2)SelectRowsByKey方法

语法1:voidSelectRowsByKey(objectkey)

语法2:voidSelectRowsByKey(Object[] keys)

语法3:voidSelectRowsByKey(objectkey, boolselected);

语法4:voidSelectRowsByKey(Object[] keys, boolselected);

3.获取选中行

(1)取选中行数

语法:Int GetSelectedRowCount()

(2)取选中行栏位值

function GetSelectedFieldValues(fieldNames : String,onCallback : ASPxClientGridViewValuesCallback);

例:

function GetSelectedFieldValues(){

    varfieldNames = "LogID";

    grid.GetSelectedFieldValues(fieldNames, GetSelectedFieldValues_Callback);

}

function GetSelectedFieldValues_Callback(result) {

    varmsg="";

    if(result.length > 0) {

        for(vari = 0; i < result.length; i++) {

            msg = msg + result[i].toString();

        }

    }

    alert(msg);

}

4.取消页面上所有行的选择

(1)UnselectAllRowsOnPage方法

语法:voidUnselectAllRowsOnPage()

5.取消指定行或所有行的选择

(1)UnselectRowOnPage方法

语法:function UnselectRowOnPage(visibleIndex : int);

(2)UnselectRows方法

语法1:voidUnselectRows();//取消所有行的选择

语法2:voidUnselectRows(intvisibleIndex);//取消指定行的选择

语法3:voidUnselectRows(Int32[] visibleIndices); //取消指定范围内行的选择

(3) UnselectRowsByKey方法

语法1:voidUnselectRowsByKey(Object[] keys);

语法2:voidUnselectRowsByKey(objectkey);

八、  服务器端行选择

1.可选择性设置

AspxGridView的SettingsBehavior属性中可以设置是否允许多行选。

This.AspxGridView.SettingsBehavior.AllowSelectByRowClick=true//是否支持单击行选择(V10.0以上)

This.AspxGridView.SettingsBehavior.AllowMultiSelection=true//是否支持多选

2.Selection属性

AspxGridView的Selection属性封装了与行选择有关的属性和方法。它是DevExpress.Web.Data.WebDataSelection类型。

(1) voidSelection.SelectAll():选中所有行。不仅仅包括当前页可见的行,还包括非当前页的行。

(2) voidSelection.SelectRow(intvisibleIndex):选中指定行。该行必须在当前页可见才能被选中。

(3) voidSelection.SelectRowByKey(objectkeyValue):按主键值选中指定行。该行可以不必在当前页。要注意主键值的数据类型应与主键列所定义的数据类型一致。

(4) voidSelection.UnselectAll():取消所有行的选择。不仅仅包括当前页可见的行,还包括非当前页的行。

(5) voidSelection.UnselectRow(intvisibleIndex):取消指定行的选择。该行必须在当前页可见才能被取消选中。

(6) voidSelection.UnselectRowByKey(objectkeyValue):按主键值取消指定行的选择。该行可以不必在当前页。要注意主键值的数据类型应与主键列所定义的数据类型一致。

(7) voidSelection.SetSelection(intvisibleIndex,boolselected):选中或取消选中指定行。该行必须在当前页可见才能被选择或取消选中。

(8) voidSelection.SetSelectionByKey(objectkeyValue,boolselected):根据主键值选中或取消选中指定行。该行可以不必在当前页。

(9) boolSelection.IsRowSelected(intvisibleIndex):判断指定行是否被选中。该行必须在当前页可见。

(10)    boolSelection.IsRowSelectedByKey(objectkeyValue):判断指定主键值对应行是否被选中。该行可以不在当前页。

(11)    count属性(int)返回选中行的行数。

九、  客户端行定位

1.将焦点转移到编辑行的指定列

(1)调用SetFocusedRowIndex设置焦点行

function SetFocusedRowIndex(visibleIndex : int);

调用SetFocusedRowIndex方法后将触发FocusedRowChanged事件

(2)调用FocusEditor方法将焦点转移到编辑行的指定列

语法1:FocusEditor(ASPxClientGridViewColumn column);

语法2:FocusEditor(intcolumnIndex);

语法3:FocusEditor(stringcolumnFieldNameOrId);

2.获取焦点行号

调用GetFocusedRowIndex方法

语法:function GetFocusedRowIndex() : int;

3.将某行置为可见(未验证)

调用SetClientVisible方法。

4.跳转到指定页

(1)调用GotoPage方法跳转到指定行。

function GotoPage(pageIndex : int);

(2)调用PrevPage方法跳转到前一页。

function PrevPage();

(3)调用NextPage方法跳转到下一页。

function NextPage();

十、  服务器端行定位

1.焦点行

AspxGridView的焦点行(当前行)与选择行是有区别的

(1) 获取或设置焦点行可以访问其FocusedRowIndex属性。

(2) 可以通过SettingsBehavior.AllowFocusedRow读取或设置是否允许定位焦点行。

(3) 可以调用AspxGridView的MakeRowVisible方法使指定主键值的行所在页可见,从而立即看到选中或跳转的效果。

例:

intkeyValue = (int)(this.ASPxGridView1.GetRowValues(0,"LogID"));

this.ASPxGridView1.MakeRowVisible(keyValue);

this.ASPxGridView1.FocusedRowIndex = 0;

this.ASPxGridView1.Selection.UnselectAll();//取消所有行的选择

this.ASPxGridView1.Selection.SelectRow(0);//选中第一行

2.将某行置为可见

调用MakeRowVisible方法。

3.跳转到指定页

将PageIndex修改为指定页号则可跳转到指定页。

十一、 客户端数据搜索

1.数据过滤

(1)调用AutoFilterByColumn()方法实现过滤。

语法1:voidAutoFilterByColumn(ASPxClientGridViewColumn column, stringval);

语法2:voidAutoFilterByColumn(intcolumnIndex, stringval);

语法3:voidAutoFilterByColumn(stringcolumnFieldNameOrId, stringval);

不会自动清除之前的过滤条件。

(2)调用ApplyFilter实现过滤。

语法:function ApplyFilter(filterExpression : String);

语法:

varfilterExpr = document.getElementById("<%=txtFilterExpression.ClientID%>").value;

grid.ApplyFilter(filterExpr);

会自动清除之前的过滤条件。

(3)调用ClearFilter清除过滤条件

语法:function ClearFilter();

十二、 服务端数据搜索

1.数据过滤

(1)调用AutoFilterByColumn()方法可以实现服务端数据过滤。

AutoFilterByColumn语法:voidAutoFilterByColumn(GridViewColumn column,stringvalue)

参数说明:

column:要过滤的栏位

value:要过滤的栏位值。可以使用通配符。

例:数据过滤

protectedvoidbtnServerFilter_Click(objectsender, EventArgs e)

{

    stringfilterColumnName = this.ddlFilterColumNames.SelectedValue;

    if(filterColumnName != null)

    {

        GridViewColumn col = this.ASPxGridView1.Columns[filterColumnName] asGridViewColumn;

        this.ASPxGridView1.AutoFilterByColumn(col, this.txtFilterColumnValue.Text);

    }   

}

(2)通过设置过滤工具条让用户自行输入条件过滤数据

this.ASPxGridView1.Settings.ShowFilterBar = GridViewStatusBarMode.Visible;//过滤状态条模式

this.ASPxGridView1.Settings.ShowFilterRow = true;//是否过滤行

this.ASPxGridView1.Settings.ShowFilterRowMenu = true;//是否显示过滤菜单

this.ASPxGridView1.SettingsBehavior.AutoFilterRowInputDelay = 1000;//自动过滤时间间隔(单位:毫秒,默认值:1200)

(3)设置FilterExpression过滤表达式

这是最灵活的一种的方法,可以使用任何有效过滤表达式(包括值比较操作符、逻辑运算符)

例:

LogID > 23955 and Event like ‘%审核%‘

2.数据搜索

(1) FindVisibleIndexByKeyValue

语法:intFindVisibleIndexByKeyValue(objectkeyValue)

例:

//搜索

protectedvoidbtnFindKeyValue_Click(objectsender, EventArgs e)

{

    stringkeyValue = this.txtFindKeyValue.Text;

    intlogID;

    

    if(keyValue.Length > 0 && Int32.TryParse(keyValue,outlogID))

    {

        introwIndex = this.ASPxGridView1.FindVisibleIndexByKeyValue(logID);

        if(rowIndex >= 0)

        {

            this.ASPxGridView1.Selection.UnselectAll();//取消所有行的选择

            this.ASPxGridView1.Selection.SelectRow(rowIndex);//选中指定行

            this.ASPxGridView1.FocusedRowIndex = rowIndex;

            this.ASPxGridView1.MakeRowVisible(logID);

        }

    }

}

十三、 分页

AspxGridView默认支持分页,默认每页行数(PageSize)是10。如果不想分页,可以设置SettingsPager的Mode=” ShowAllRecords”。可以通过访问SettingsPager读取或更改相关分页属性。

1.分页条相关属性

属性名 数据类型    英文说明    中文说明

AlwaysShowPager bool    Gets or sets whether the Pager isdisplayed within the ASPxGridView when there isonly onpage. 是否总是显示分页条(即在一页时是否也显示分页条)。可读写

CurrentPageNumberFormat string  Gets or sets the pattern used to format the text of the numeric button that corresponds to the selected page.   当前页次数字格式。可读写。类似如下格式:{0:G}

EllipsisMode    DevExpress.Web.ASPxPager.PagerEllipsisMode(枚举)  Gets or sets how an Ellipsis symbol(s) isdrawn to indicate page numbers that are omitted.  获取或设置页码省略模式。可读写。InsideNumeric:中间页码省略,None:不显示省略符,OutsideNumeric:两端页码省略

AllButton   DevExpress.Web.ASPxPager.AllButtonProperties    Gets the All button’s settings. 取所有分页条上按钮属性.只读

FirstPageButton DevExpress.Web.ASPxPager.FirstButtonProperties  Gets the First button‘s settings.   获取首页按钮属性设置。只读。通常更改其显示文本、可见性、图片。

LastPageButton  DevExpress.Web.ASPxPager.LastButtonProperties   Gets the Last button‘s settings.    获取末页按钮属性设置。只读。通常更改其显示文本、可见性、图片。

PrevPageButton  DevExpress.Web.ASPxPager.PrevButtonProperties   Gets the Previous button‘s settings.    获取上页按钮属性设置。只读。通常更改其显示文本、可见性、图片。

NextPageButton  DevExpress.Web.ASPxPager.NextButtonProperties   Gets the Next button‘s settings.    获取下页按钮属性设置。只读。通常更改其显示文本、可见性、图片。

Mode    GridViewPagerMode(枚举)   Gets or sets whether page-mode navigation isenabled.   获取或设置是否分页。可读写。取值范围:ShowPager,表示要求分页;ShowAllRecords,显示所有记录,实际上是不分页。

NumericButtonCount  Int Gets or sets the maximum number of numeric buttons that can be

displayed within a paginated control.   获取或设置显示在分页条上的数字页码个数。可读写。

PageNumberFormat    String  Gets or sets the pattern used to format the text of numeric buttons.    数字页码格式。可读写。类似如下格式:{0:G}

PageSize    Int Gets or sets the maximum number of rows that can be displayed ona

page.   每页行数。可读写。默认为10.

Position    PagerPosition(枚举)   Gets or sets the pager‘s position within an ASPxGridView control.   获取或设置分页条位置。可读写。取值范围:Top,Bottom, TopAndBottom.

SEOFriendly DevExpress.Web.ASPxPager.SEOFriendlyMode(枚举)    Gets or sets whether Search-Engine Optimization (SEO) mode isenabled.  获取或设置搜索优化模式。可读写。取值范围:Enabled,启用;Disabled,不启用;CrawlerOnly,自动检测。

ShowDefaultImages   bool    Gets or sets whether defaultbutton images are shown.   获取或设置是否显示缺省的分页图片。可读写。只有本属性设置为true,分页按钮(如首页)的图片才能更改生效。

ShowDisabledButtons Bool    Gets or sets whether navigation buttons that are temporarily disabled are shown.    获取或设置当分页按钮无效时是否隐藏。可读写。

ShowNumericButtons  Bool    Gets or sets whether numeric buttons are visible.   获取或设置数字页码是否可见。可读写。

ShowSeparators  Bool    Gets or sets whether separators that separate page numbers are shown.   获取或设置页码间是否放置分隔条(|)。可读写。

Summary DevExpress.Web.ASPxPager.SummaryProperties  Gets the control‘s Summary settings.   获取分页控件汇总属性。只读。

Visible Bool    Gets or sets whether the pager isvisible.  获取或设置分页条是否可见。可读写。

其中以下属性通常会被访问或重置。PageSize、各分页按钮文本。

2.更改分页条按钮属性

分页工具条上一般有首页(FirstPageButton)、上页(PrevPageButton)、下页(NextPageButton)、末页(LastPageButton)按钮。通常会对按钮的文本进行本地化。

例:

this.ASPxGridView1.SettingsPager.FirstPageButton.Text = "首页";

this.ASPxGridView1.SettingsPager.FirstPageButton.Visible = true;

this.ASPxGridView1.SettingsPager.PrevPageButton.Text = "上一页";

this.ASPxGridView1.SettingsPager.NextPageButton.Text = "下一页";

this.ASPxGridView1.SettingsPager.LastPageButton.Text = "末页";

this.ASPxGridView1.SettingsPager.LastPageButton.Visible = true;

3.与分页相关操作

(1)跳页: this.ASPxGridView1.PageIndex=<指定页号>

(2)取总页数:this.ASPxGridView1.PageCount

(3)页次改变事件PageIndexChanged

如果AspxGridView是动态绑定数据源,必须在翻页事件(PageIndexChanged)中重新绑定数据,否则翻页后无数据。

voidASPxGridView1_PageIndexChanged(objectsender, EventArgs e)

十四、 客户端排序

1.使用SortBy方法排序

语法1:voidSortBy(ASPxClientGridViewColumn column);

语法2:voidSortBy(intcolumnIndex);

语法3:voidSortBy(stringcolumnFieldNameOrId);

语法4:voidSortBy(stringcolumnFieldNameOrId, stringsortOrder);

语法5:voidSortBy(ASPxClientGridViewColumn column,stringsortOrder);

语法6:voidSortBy(intcolumnIndex, stringsortOrder);

语法7:voidSortBy(intcolumnIndex, stringsortOrder,boolreset);

语法8:voidSortBy(ASPxClientGridViewColumn column,stringsortOrder, boolreset);

语法9:voidSortBy(stringcolumnFieldNameOrId, stringsortOrder, boolreset);

语法10:voidSortBy(ASPxClientGridViewColumn column,stringsortOrder, boolreset, intsortIndex);

语法11:voidSortBy(intcolumnIndex, stringsortOrder,boolreset, intsortIndex);

语法12:voidSortBy(stringcolumnFieldNameOrId, stringsortOrder, boolreset, intsortIndex);

其中参数:

sortOrder:可取Ascending、Descending。

Reset:是否清除以前的排序规则。

(2)点击栏位题头排序。

按住Shift键可以指定多个栏位排序。

十五、 服务器端排序

1.排序设置

必须设置AspxGridView允许排序才可执行真正的排序(SettingsBehavior.AllowSort=true),该选项默认为true

2.使用SortBy方法排序

语法1.intSortBy(GridViewColumn column,intvalue)

语法2.ColumnSortOrder SortBy(GridViewColumn column,ColumnSortOrder value)

调用SortBy方法不会自动清除以前的排序栏位,如果不清除之前的排序栏位,则当前栏位会追加到排序栏位列表中。

可以通过以下方法清除以前的排序栏位。

(1) 调用ClearSort方法来清除以前的排序栏位

(2) 遍历栏位的SortIndex属性来确定是否参与过排序及排序的次序(SortIndex=-1表示不排序,另外栏位的SortOrder可获取或设置排序方式)。GridViewColumn. SortIndex=-1。

(3) 调用GridViewColumn.UnSort()方法

例:

protectedvoidbtnServerSort_Click(objectsender, EventArgs e)

{           

    stringsortColumn = this.ddlSortColumn.SelectedValue;

    stringsortType = this.ddlSortType.SelectedValue;

    GridViewDataColumn sortDataColumn;

    DevExpress.Data.ColumnSortOrder sortOrder;

    this.ASPxGridView1.SettingsBehavior.AllowSort = true;

    if(sortType == "Desc")

    {

        sortOrder = DevExpress.Data.ColumnSortOrder.Descending;

    }

    else

    {

        sortOrder = DevExpress.Data.ColumnSortOrder.Ascending;

    }

    if(sortColumn != null)

    {

        this.ASPxGridView1.ClearSort();//清除以前的排序栏位

        sortDataColumn = this.ASPxGridView1.Columns[sortColumn] asGridViewDataColumn;

        this.ASPxGridView1.SortBy(sortDataColumn, sortOrder);//执行排序

    }

}

3.直接操作GridViewDataColumn排序

调用GridViewDataColumn.SortAscending()方法正向排序

调用GridViewDataColumn.SortDescending()方法逆向排序

4.使用GetSortedColumns方法取排序栏位

语法:System.Collections.ObjectModel.ReadOnlyCollection<GridViewDataColumn> GetSortedColumns()

例:

System.Collections.ObjectModel.ReadOnlyCollection<GridViewDataColumn> sortedColumnList = this.ASPxGridView1.GetSortedColumns();

StringBuilder msg = newStringBuilder();

for(inti = 0; i < sortedColumnList.Count; i++)

{

    msg.Append(sortedColumnList[i].FieldName);

}

stringjs = "alert(‘"+ msg.ToString()+"‘)";

ScriptManager.RegisterClientScriptBlock(thisthis.GetType(), "GetSortedColumns", js, true);//在客户端执行脚本

十六、 服务器端数据分组

1.数据分组的前提条件

必须设置ASPxGridViewBehaviorSettings.AllowGroup=true和ASPxGridViewBehaviorSettings.AllowSort=true

2.使用GroupBy方法实现数据分组

语法1:intGroupBy(GridViewColumn column);

语法2:intGroupBy(GridViewColumn column, intvalue);

其中参数value表示分组的层次,-1表示取消该栏位的分组。

调用GroupBy方法不会自动清除以前的分组规则,可以调用ClearSort方法或UnGroup方法清除。

例:用一个栏位分组

this.ASPxGridView1.ClearSort();//清空分组

stringcolumnName = this.ddlGroupColumns.SelectedValue;

GridViewColumn col = this.ASPxGridView1.Columns[columnName];

this.ASPxGridView1.GroupBy(col);//分组

例:用多个栏位分组

this.ASPxGridView1.ClearSort();//清空分组

this.ASPxGridView1.GroupBy(this.ASPxGridView1.Columns[“Event”]);//分组

this.ASPxGridView1.GroupBy(this.ASPxGridView1.Columns[“Type”]);//分组

3.分组的展开与折叠

(1)使用ExpandAll展开所有分组。

语法:voidExpandAll();

(2)使用ExpandRow展开指定分组行。

语法1:voidExpandRow(intvisibleIndex);

语法2:voidExpandRow(intvisibleIndex, boolrecursive);

参数recursive:是否递归。

(3)使用CollapseAll折叠所有分组。

语法:voidCollapseAll();

(4)使用CollapseRow折叠指定分组行。

语法1:voidCollapseRow(intvisibleIndex);

语法2:voidCollapseRow(intvisibleIndex, boolrecursive);

4.判断分组行是否展开

使用IsRowExpanded方法。

语法:boolIsRowExpanded(intvisibleIndex);

5.数据分组的相关设置

(1)Setting.GroupFormat用来设置分组行的数据格式(可读写)。

默认是:{0}:{1}{2}。其中{0}表示分组栏位的标签(Caption属性),{1}表示分组栏位值,{2}表示汇总文本。{1}与{2}中间会自动显示括号。只有在<GroupSummary>标签中定义了汇总方式才会在显示其汇总文本。

例:

<GroupSummary>

    <dxwgv:ASPxSummaryItem FieldName="OCCDatetime"SummaryType="Count"/>           

</GroupSummary>

(2) Setting. ShowGroupedColumns用来显示已分组的栏位。默认为true

(3) Setting. ShowGroupedButtons用来显示分组展开按钮(+)。默认为true

(4) Setting. ShowGroupFooter用来设置分组页脚显示模式(GridViewGroupFooterMode枚举型)。默认为Hidden。可取值:Hidden、VisibleAlways、VisibleIfExpanded。

(5)分组数据间隔。GroupInterval属性。

例:<Settings GroupInterval="DateYear"/>

GroupInterval可赋如下值:Alphabetical、Date、DateMonth、DateRange、DateYear、Default、DisplayText、Value。

6.按分组值排序

this.ASPxGridView1.GroupSummarySortInfo.Clear();

this.ASPxGridView1.GroupSummarySortInfo.AddRange(newASPxGroupSummarySortInfo("OCCDatetime"this.ASPxGridView1.GroupSummary["OCCDatetime"], ColumnSortOrder.Ascending));

十七、 客户端数据分组

1.使用GroupBy方法实现数据分组

语法1:voidGroupBy(intcolumnIndex);

语法2:voidGroupBy(ASPxClientGridViewColumn column);

语法3:voidGroupBy(stringcolumnFieldNameOrId);

语法4:voidGroupBy(stringcolumnFieldNameOrId, intgroupIndex);

语法5:voidGroupBy(intcolumnIndex, intgroupIndex);

语法6:voidGroupBy(ASPxClientGridViewColumn column, intgroupIndex);

语法7:voidGroupBy(intcolumnIndex, intgroupIndex,stringsortOrder);

语法8:voidGroupBy(ASPxClientGridViewColumn column, intgroupIndex, stringsortOrder);

语法9:voidGroupBy(stringcolumnFieldNameOrId, intgroupIndex, stringsortOrder);

2.分组的展开与折叠

(1)使用ExpandAll展开所有分组。

语法: voidExpandAll();

(2)使用ExpandRow展开指定分组行。

语法1:voidExpandRow(intvisibleIndex);

语法2:voidExpandRow(intvisibleIndex, boolrecursive);

参数recursive:是否递归。

(3)使用CollapseAll折叠所有分组。

语法:voidCollapseAll();

(4)使用CollapseRow折叠指定分组行。

语法1:voidCollapseRow(intvisibleIndex);

语法2:voidCollapseRow(intvisibleIndex, boolrecursive);

3.判断分组行是否展开

使用IsGroupRowExpanded方法。

语法:boolIsGroupRowExpanded(intvisibleIndex);

4.判断是分组行还是数据行

(1)判断是否分组行

function IsGroupRow(visibleIndex : int) : bool;

(2)判断是否数据行

function IsDataRow(visibleIndex : int) : bool;

5.用户拖动栏位到分组带实现分组

首先需要显示分组带:<Settings ShowGroupPanel="True"/>

使用鼠标将栏位拖动到分组带即可实现即时分组。将分组栏位拖回题头则取消分组。

十八、 数据导出

1.内置数据导出的前提条件

使用DevExpress.Web.ASPxGridView.Export.ASPxGridViewExporter实现数据导出。注意一定要将该控件放在页面上才可。

应引入以下dll文件:

DevExpress.Utils.v9.1.dll

DevExpress.Web.ASPxGridView.v9.1.Export.dll

DevExpress.XtraPrinting.v9.1.dll

Asp.Net页面注册代码:

<%@ Register Assembly="DevExpress.Web.ASPxGridView.v9.1.Export, Version=9.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"

    Namespace="DevExpress.Web.ASPxGridView.Export"TagPrefix="dxwgve"%>

<%@ Register Assembly="DevExpress.XtraPrinting.v9.1, Version=9.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"

    Namespace="DevExpress.XtraPrinting"TagPrefix="dxwgve"%>

Asp.net页面控件声明:

<dxwgve:ASPxGridViewExporter ID="ASPxGridViewExporter1"runat="server">

</dxwgve:ASPxGridViewExporter>

2.支持的数据导出类型

ASPxGridViewExporter支持导出到Csv、Pdf、Rtf、Excel文件,所对应的方法分别为:WriteCsv(WriteCsvResponse)、WritePdf(WritePdfResponse)、WriteRtf(WriteRtfResponse)、WriteXls(WriteXlsResponse)。

在数据导出时通过给ASPxGridViewExporter的GridViewID指定一个AspxGridView控件ID。

例:将所有记录导出到Excel文件

ASPxGridViewExporter1.GridViewID = "ASPxGridView1";

ASPxGridViewExporter1.WriteXlsToResponse("Sys_Log.xls");//导出到Excel

例:将所选记录导出到Pdf文件

ASPxGridViewExporter1.GridViewID = "ASPxGridView1";

ASPxGridViewExporter1. ExportedRowType = GridViewExportedRowType.Selected;

ASPxGridViewExporter1.WritePdfToResponse("Sys_Log.pdf");//导出到pdf

3. ASPxGridViewExporter重要属性

属性名 数据类型    英文说明    中文说明

FileName    String  Gets or sets the file name to which the grid‘s data isexported.    导出文件名称。可读写。

GridView    AspxGridView    Gets the ASPxGridView control to which the ASPxGridViewExporter is

assigned.   AspxGridView控件实例。只读。

GridViewID  String  Gets or sets the programmatic identifier of the associated ASPxGridView control.    需要导出数据的AspxGridView控件ID。可读写。

ExportedRowType GridViewExportedRowType(枚举) Gets or sets which rows should be exported. 导出行范围。可读写。取值范围:All,所有行;Selected,选中行。

4.主从ASPxGridView数据导出

在导出有主从关系的AspxGridView时可设置导出模式(SettingsDetail.ExportMode),取值范围:None(不导出子AspxGridView数据)、Expanded(已展开的子AspxGridView数据)、All(所有子AspxGridView数据)。在导出的文件中主数据下包含了子数据。

例:

//子AspxGridView导出模式

this.MasterGrid.SettingsDetail.ExportMode = (GridViewDetailExportMode)Enum.Parse(typeof(GridViewDetailExportMode), this.ddlExportMode.Text);

ASPxGridViewExporter1.GridViewID = "MasterGrid";

ASPxGridViewExporter1.WriteXlsToResponse("Task.xls");//导出到Excel

5.导出到Pdf时中文乱码问题的解决

可以通过更改ASPxGridViewExporter的Styles.Default.Font.Name来处理中文乱码问题。有中文符号的字体可以正确显示中文。

十九、 报表打印

二十、 懒加载

二十一、    客户端栏位取值与赋值

1.使用GetPageRowValues取当前页指定栏位值

语法;function GetPageRowValues(fieldNames : String,onCallback : ASPxClientGridViewValuesCallback);

例:

function GetPageRowValues() {

    varfieldNames = document.getElementById("txtFieldName_GetPageRowValues").value;

    grid.GetPageRowValues(fieldNames, GetPageRowValues_Callback);

}

function GetPageRowValues_Callback(result) {

    varmsg = "";

    if(result.length > 0) {

        for(vari = 0; i < result.length; i++) {

            msg = msg + result[i].toString() + ",";

        }

        msg = msg.substring(0, msg.length - 1);

    }

    alert(msg);

}

2.使用GetRowValues取指定行指定栏位值

语法:function GetRowValues(visibleIndex : int,fieldNames : String,

onCallback : ASPxClientGridViewValuesCallback);

3.使用GetSelectedFieldValues取选中行指定栏位值

语法:function GetSelectedFieldValues(fieldNames : String,onCallback : ASPxClientGridViewValuesCallback);

4.取栏位实例

(1)使用GetColumn方法

语法:function GetColumn(columnIndex : int) : ASPxClientGridViewColumn;

(2)使用GetColumnByField方法

语法:function GetColumnByField(columnFieldName : String) : ASPxClientGridViewColumn;

(3)使用GetColumnById方法

语法:function GetColumnById(columnId : String) : ASPxClientGridViewColumn;

5.使用GetColumnsCount取栏位总数

语法:function GetColumnsCount() : int;

6.使用MoveColumn隐藏和移动栏位

(1)隐藏列

语法1:voidMoveColumn(ASPxClientGridViewColumn column);

语法2:voidMoveColumn(intcolumnIndex);

语法3:voidMoveColumn(stringcolumnFieldNameOrId);

(2)移动列

语法4:voidMoveColumn(ASPxClientGridViewColumn column, intmoveToColumnVisibleIndex);

语法5:voidMoveColumn(intcolumnIndex, intmoveToColumnVisibleIndex);

语法6:voidMoveColumn(stringcolumnFieldNameOrId,intmoveToColumnVisibleIndex);

语法7:voidMoveColumn(stringcolumnFieldNameOrId,intmoveToColumnVisibleIndex, bool

moveBefore);

语法8:voidMoveColumn(intcolumnIndex, intmoveToColumnVisibleIndex, boolmoveBefore);

语法9:voidMoveColumn(ASPxClientGridViewColumn column, intmoveToColumnVisibleIndex, bool

moveBefore);

语法10:voidMoveColumn(stringcolumnFieldNameOrId,intmoveToColumnVisibleIndex, bool

moveBefore, boolmoveToGroup);

语法11:voidMoveColumn(intcolumnIndex, intmoveToColumnVisibleIndex, boolmoveBefore,

boolmoveToGroup);

语法12:voidMoveColumn(ASPxClientGridViewColumn column, intmoveToColumnVisibleIndex, bool

moveBefore, boolmoveToGroup);

语法13:voidMoveColumn(ASPxClientGridViewColumn column, intmoveToColumnVisibleIndex, bool

moveBefore, boolmoveToGroup, boolmoveFromGroup);

语法14:voidMoveColumn(stringcolumnFieldNameOrId,intmoveToColumnVisibleIndex, bool

moveBefore, boolmoveToGroup, boolmoveFromGroup);

语法15:voidMoveColumn(intcolumnIndex, intmoveToColumnVisibleIndex, boolmoveBefore,

boolmoveToGroup, boolmoveFromGroup);

7. 使用GetRowKey取行主键值

语法:stringfunction GetRowKey(visibleIndex : int)

二十二、    服务器端栏位取值与赋值

1.取行值

(1) 使用GetDataRow方法取指定行数据

语法:DataRow GetDataRow(intvisibleIndex)

visibleIndex:行号。可以是不在当前页上的行。只有通过DataSourceID绑定数据才可获取到数据,如果通过DataSource绑定数据是获取不到值的。

例:

stringsrowIndex = this.txtGetDataRowIndex.Text;

introwIndex;

if(Int32.TryParse(srowIndex,outrowIndex))

{

    DataRow dr = this.ASPxGridView1.GetDataRow(rowIndex);//取指定行数据

    if(dr != null)

    {

        stringmsg = "LogID="+ dr["LogID"].ToString() + ";Event="+ dr["Event"].ToString();

        Response.Write(msg);       

    }

}

(2) 使用GetRow方法取指定行数据

语法:objectGetRow(intvisibleIndex)

visibleIndex:行号。可以是不在当前页上的行。

该函数返回的是object类型,实际类型通常是DataRowView。

2.取列值

(1) 使用GetRowValues方法获取指定栏位值

语法:objectGetRowValues(intvisibleIndex,parms stringfieldnames[])

如果fieldNames只指定一个栏位,GetRowValues将返回object类型,程序员应转换为正确的数据类型。如果fieldNames指定了多个栏位,GetRowValues将返回object[]类型,可以通过is判断返回值。

例:

stringsrowIndex = this.txtGetDataRowIndex.Text;

introwIndex;

string[] fieldName;

stringtempFieldName;

objecttempColumnValues;

object[] columnValues;

StringBuilder msg = newStringBuilder();

intcount=0;

tempFieldName = this.txtGetValueColumnNames.Text;

fieldName = tempFieldName.Split(‘,‘);//分解字符串到数组

if(Int32.TryParse(srowIndex, outrowIndex))

{

    tempColumnValues = this.ASPxGridView1.GetRowValues(rowIndex, fieldName);//取值

    if(tempColumnValues isSystem.Object[])//返回数组

    {

        columnValues = (System.Object[])tempColumnValues;

        count = Math.Min(fieldName.Length, columnValues.Length);

        for(inti = 0; i < count; i++)

        {

            msg.Append(fieldName[i] + "="+ columnValues[i].ToString());

        }

    }

    else//返回单个值

    {

        msg.Append(tempFieldName);

        msg.Append("=");

        msg.Append(tempColumnValues.ToString());

    }

    Response.Write(msg.ToString());

}

(2) 使用GetRowValuesByKeyValue方法获取指定栏位值

语法:objectGetRowValuesByKeyValue(objectkeyValue,parms stringfieldnames[])

GetRowValuesByKeyValue方法与GetRowValues方法类似,只是前者通常主键值找到对应行再获取栏位值而已。

(3) 使用GetSelectedFieldValues方法获取选中行指定栏位值

语法:List<object>GetSelectedFieldValues(parms stringfieldnames[])

如果fieldNames只指定一个栏位,GetSelectedFieldValues将返回object列表(各栏位值数组),程序员应转换为正确的数据类型。如果fieldNames指定了多个栏位,GetSelectedFieldValues将返回object[]列表(逐行指定栏位值数组),可以通过is判断返回值。

例:

stringtempFieldName = this.txtGetValueColumnNames.Text;

string[] fieldName = tempFieldName.Split(‘,‘);//分解字符串到数组

StringBuilder msg = newStringBuilder();

List<object> tempFieldValues = this.ASPxGridView1.GetSelectedFieldValues(fieldName);//取选中行栏位值

//GetSelectedFieldValues返回值先行后列(类似二维数组)

//行列值行列值行列M值

//行N列值行N列值行N列M值

for(inti = 0; i < tempFieldValues.Count; i++)

{

    if(tempFieldValues[i] isSystem.Object[])//返回数组

    {

        object[] fieldValues = (object[])tempFieldValues[i];

        for(intj = 0; j < fieldValues.Length; j++)

        {

            msg.Append(fieldValues[j].ToString());

        }

    }

    else

    {

        msg.Append(tempFieldValues[i].ToString());

    }

}

Response.Write(msg.ToString());

(4)使用GetCurrentPageRowValues方法获取当前页指定栏位值

语法:List<object>GetCurrentPageRowValues (parms stringfieldnames[])

用法类似GetSelectedFieldValues。

二十三、    栏位编辑风格

1.AspxGridView栏位类型

GridViewCommandColumn:命令按钮列

GridViewDataColumn:基本数据列

GridViewDataBinaryImageColumn:二进制图像列

GridViewDataButtonEditColumn:编辑按钮列

GridViewDataCheckColumn: 复选框列

GridViewDataComboBoxColumn:组合框列

GridViewDataDateColumn:日期列

GridViewDataHyperLinkColumn:超链接列

GridViewDataImageColumn:图像列

GridViewDataMemoColumn:大文本列

GridViewDataProgressBarColumn:进度条列

GridViewDataSpinEditColumn:微调掩码列

GridViewDataTextColumn:文本列

其中GridViewCommandColumn与GridViewDataColumn时同级的,都继承自GridViewColumn.

GridViewDataTextColumn类继承自GridViewEditDataColumn,GridViewEditDataColumn继承自GridViewDataColumn,其它数据列直接继承自GridViewDataColumn。

GridViewColumn是一个抽象类,不能将栏位直接声明为GridViewColumn类。

2.GridViewColumn服务器端重要属性

属性名 数据类型    英文说明    中文说明

Caption String  Gets or sets the text displayed within the column header.   栏位题头文本。可读写。

CellStyle   GridViewCellStyle   Gets the style settings used to paint column cells. 栏位样式。只读。

Collection  DevExpress.Web.ASPxClasses. Collection  Gets the collection to which an item belongs.   栏位所属集合。只读。

FixedStyle  GridViewColumnFixedStyle(枚举)        栏位冻结时的样式。可读写。取值范围:Left,固定;None:不固定。

FooterCellStyle GridViewFooterStyle Gets the style settings used to paint footer cells within a column. 页脚栏位样式。只读。

FooterTemplate  ITemplate   Gets or sets a template fordisplaying the column‘s footer cell.    栏位页脚所在单元格模板。可读写。

Grid    ASPxGridView    Gets the Grid View that owns the current column.    栏位所属AspxGridView。只读。

GroupFooterCellStyle    GridViewGroupFooterStyle    Gets the style settings used to paint groupfooter cells within a column.   页脚栏位分组带样式。只读。

HeaderCaptionTemplate   ITemplate   Gets or sets a template fordisplaying the column header‘s caption. 栏位题头模板。可读写。

Index   Int Gets or sets the item‘s index within the collection.    栏位序号。可读写。

Name    String  Gets or sets the column‘s programmatic identifier.  栏位名称。可读写。

ShowInCustomizationForm Bool    Gets or sets whether the column‘s header isdisplayed within the

Customization Window when the column ishidden. 栏位题头(栏位隐藏时)是否显示在自定义窗口中。可读写。

ToolTip String  Gets or sets the column header‘s tooltip text.  微帮助。可读写。

Visible Bool    Gets or sets a value that specifies whether the column isvisible.  是否显示。可读写。

VisibleIndex    Int Gets or sets the column‘s position among the visible columns within a web control.  显示顺序。可读写。

Width   Unit    Gets or sets the column‘s width.    宽度。可读写。

3.GridViewColumn服务器端方法

方法名 语法  英文说明    中文说明

Assign  Void Assign(DevExpress.Web.ASPxClasses. CollectionItem source)  Copies the publicproperties fromthe specified objectto the current one.  从指定对象中复制公共属性到当前栏位。

IsClickable boolIsClickable()  Indicates whether the column responds to mouse clicks.  判断栏位是否可以响应鼠标单击事件。当栏位有题头或AspxGridView允许排序(SettingsBehavior.AllowSort)或允许栏位拖动(SettingsBehavior.AllowDragDrop)时返回true,否则返回false.

SetColVisible   voidSetColVisible(boolvalue)      设置栏位是否可见。等同于Visible属性。

SetColVisibleIndex  Void SetColVisibleIndex(intvalue)      设置栏位显示顺序。等同于VisibleIndex属性。

AutoFilterBy    Void AutoFilterBy(stringvalue)     根据指定栏位值自动过滤

(1)Assign方法举例

注意调用Assign方法后当前栏位包括名称、数据都与复制源一致。如果想使复制后数据等某些属性与复制源不同,应在调用本方法后重新改变。通常用来动态创建栏位。

例:

GridViewDataColumn c = (GridViewDataColumn)(this.ASPxGridView1.Columns["Creator"]);

this.ASPxGridView1.Columns["Creator"].Assign(this.ASPxGridView1.Columns["LogID"]);

c.FieldName = "Creator";

c.Name = "Creator";

c.Caption = "Creator";

4.GridViewCommandColumn:命令按钮列

(1)栏位声明示例

<dxwgv:GridViewCommandColumn Caption="选择"Name="IsSelect"ButtonType="Button"ShowSelectCheckbox="true">

</dxwgv:GridViewCommandColumn>

<dxwgv:GridViewCommandColumn Caption="操作"Visible="true">

    <UpdateButton Text="保存"Visible="true"/>

    <NewButton Text="新增"Visible="true"/>

    <CancelButton Text="取消"Visible="true"/>

    <ClearFilterButton Text="清除"Visible="true"/>

    <SelectButton Text="选择"Visible="true"/>

</dxwgv:GridViewCommandColumn>

(2)GridViewCommandColumn服务器端重要属性

属性名 数据类型    英文说明    中文说明

AllowDragDrop   DefaultBoolean(枚举)  Gets or sets whether end-users can drag the column‘s header.    是否允许栏位拖动。可读写。取值范围:True,False,Default

ButtonType  ButtonType(枚举)  Gets or sets the command button‘s type. 按钮类型。可读写。取值范围:Button、Image、Link

CancelButton    GridViewCommandColumnButton Gets the Cancel button‘s settings.  取消按钮。只读。

ClearFilterButton   GridViewCommandColumnButton Gets the Clear button‘s settings.   清除过滤条件按钮。只读。

CustomButtons   GridViewCommandColumnCustomButtonCollection Gets the collection of custom buttons.  自定义按钮集合。只读。

DeleteButton    GridViewCommandColumnButton Gets the Delete button‘s settings.  删除按钮。只读。

EditButton  GridViewCommandColumnButton Gets the Edit button‘s settings.    编辑按钮。只读。

NewButton   GridViewCommandColumnButton Gets the New button‘s settings. 新增按钮。只读。

SelectButton    GridViewCommandColumnButton Gets the Select button‘s settings.  选择按钮。只读。

ShowSelectCheckbox  Bool    Gets or sets whether the check box used to select/deselect data rows is

shown.  是否显示选择框。可读写。

UpdateButton    GridViewCommandColumnButton Gets the Update button‘s settings.  保存按钮。只读。

5. GridViewDataColumn:基本数据列

(1)栏位声明示例

<dxwgv:GridViewDataColumn Caption="LogID"FieldName="LogID"ReadOnly="true">               

</dxwgv:GridViewDataColumn>

(2)GridViewDataColumn服务器端重要属性

属性名 数据类型    英文说明    中文说明

DataItemTemplate    ITemplate   Gets or sets a template fordisplaying data cells within the current column.    当前栏位显示数据的单元格模板。可读写。

EditCellStyle   GridViewEditCellStyle   Gets the style settings used to paint the column‘s cells within the Edit Form.  栏位编辑时样式。只读。

EditFormCaptionStyle    GridViewEditFormCaptionStyle    Gets the style settings used to paint the caption of the edit cell that

corresponds to the current column.  栏位编辑时题头样式。只读。

EditFormSettings    GridColumnEditFormSettings  Gets the settings of the edit cell which isdisplayed within the Edit Form and

corresponds to the current data column. 在编辑窗口中栏位的设置

EditItemTemplate    ITemplate   Gets or sets a template fordisplaying edit cells which correspond to the

current column. 当前栏位编辑数据的单元格模板。可读写。

FieldName   String  Gets or sets the name of the database field assigned to the current column. 数据库列名。可读写。

FilterCellStyle GridViewFilterCellStyle Gets the style settings used to paint a cell within the Auto Filter Row that

corresponds to the current data column. 栏位在自动过滤工具条上的样式。只读。

FilterExpression    String  Gets the column‘s filter expression.    栏位过滤表达式。只读。在调用AspxGridView的AutoFilterByColumn()方法自动设置栏位过滤表达式。

GroupIndex  intGets or sets a value that specifies whether the column takes part in

grouping and at which level.    栏位分组层次。可读写。

PropertiesEdit  EditPropertiesBase  Gets or sets the column editor‘s settings.  栏位编辑器设置。可读写。

PropertiesEditType  string  Gets or sets the type of the column‘s editor.   栏位编辑器类型。可读写。

ReadOnly    Bool    Gets or sets whether end-users are allowed to edit the column‘s cell values.    是否只读。可读写。

Settings    GridViewDataColumnSettings  Provides access to the column‘s options.    提供访问栏位选项的对象。只读。

SortIndex   Int Gets or sets the column‘s position among sorted columns.    栏位排序次序。可读写。

SortOrder   ColumnSortOrder(枚举) Gets or sets the column‘s sort order.   栏位排序方式。可读写。取值范围:None,Ascending,      Descending

UnboundType UnboundColumnType(枚举)   Gets or sets the data type and binding mode of the column.  栏位绑定数据类型。可读写。取值范围:Bound,Integer,Decimal, DateTime,        String,Boolean,Object。

(3)GridViewDataColumn服务器端重要方法

方法名 语法  英文说明    中文说明

Assign  Void Assign(DevExpress.Web.ASPxClasses. CollectionItem source)  Copies the publicproperties fromthe specified objectto the current one.  从指定对象中复制公共属性到当前栏位。

AutoFilterBy    Void AutoFilterBy(stringvalue) Applies a filter to the column. 根据指定栏位值自动过滤

GroupBy voidGroupBy()  Groups data bythe values of the current column.    按当前栏位分组。可以调用UnGroup方法打散分组。

SortAscending   voidSortAscending()    Sorts the column inascendingorder.    按当前栏位值正序排序

SortDescending  Void SortDescending()   Sorts the column indescendingorder.   按当前栏位值倒序排序

UnGroup voidUnGroup()  Ungroups data bythe values of the current column.  取消当前栏位分组

UnSort  Void UnSort()   Clears the sorting applied to the column.   取消当前栏位排序

6.GridViewDataButtonEditColumn:编辑按钮列

(1) 栏位声明示例

<dxwgv:GridViewDataButtonEditColumn Caption="备注"FieldName="Remark">

    <PropertiesButtonEdit NullText="空"/>

</dxwgv:GridViewDataButtonEditColumn>

(2) 独特属性

GridViewDataButtonEditColumn继承自GridViewDataColumn,它包括以下独特属性:

属性名 数据类型    英文说明    中文说明

PropertiesButtonEdit    ButtonEditProperties    Gets the column editor‘s settings.  栏位编辑器属性

7.GridViewDataCheckColumn: 复选框列

8.GridViewDataTextColumn:文本列

(1)GridViewDataTextColumn服务器端重要属性

属性名 数据类型    英文说明    中文说明

            

二十四、    栏位格式化

二十五、    固定列

AspxGridView的固定列是通过设置栏位的FixedStyle=”Left”来实现的。

Asp.net中设置:FixedStyle=”Left”

C#中设置:FixedStyle = GridViewColumnFixedStyle.Left

二十六、    栏位拖动

设置SettingsBehavior.AllowDragDrop=true则允许栏位拖动。

调用客户端方法MoveColumn可在前台实现代码拖动。支持用户使用鼠标拖动栏位。

二十七、    栏位合计

AspxGridView的汇总数据是显示在Footer带上的,必须设置Settings.ShowFooter=true。直接显示在栏位下方。

可以将汇总信息定义在<TotalSummary>标签中。

例:

<TotalSummary>

    <dxwgv:ASPxSummaryItem FieldName="Event"SummaryType="Count"/>

    <dxwgv:ASPxSummaryItem FieldName="OCCDatetime"SummaryType="Min"/>

    <dxwgv:ASPxSummaryItem FieldName="OCCDatetime"SummaryType="Max"/>

</TotalSummary>

AspxGridView内置的聚合函数包括:Sum、Min、Max、Count、Average、Custom、None。

二十八、    栏位初始值

AspxGridView要设置栏位新增时初始值需要扩充其InitNewRow事件。代码的主要功能是给e.NewValues[栏位名称]赋值。

事件原型:

protectedvoid  ASPxGridView1_InitNewRow(objectsender, DevExpress.Web.Data.ASPxDataInitNewRowEventArgs e)

DevExpress.Web.Data.ASPxDataInitNewRowEventArgs属性:

NewValues:System.Collections.Specialized.OrderedDictionary类型

例:

//设置栏位初始值

protectedvoid  ASPxGridView1_InitNewRow(objectsender, DevExpress.Web.Data.ASPxDataInitNewRowEventArgs e)

{

    e.NewValues["CreateDate"] = DateTime.Now;   

}

二十九、    栏位可编辑性

三十、 栏位数据校验

1.行数据校验(编辑状态)

调用DoRowValidation()可以进行行数据校验。它实际上是触发RowValidating事件编写代码实现数据校验的。DoRowValidation方法对浏览状态的行无效,可以通过获取AspxGridView的IsEditing属性判断是否进入编辑状态。

RowValidating事件原型:

voidASPxGridView1_RowValidating(objectsender, DevExpress.Web.Data.ASPxDataValidationEventArgs e)

DevExpress.Web.Data.ASPxDataValidationEventArgs构造函数:

publicASPxDataValidationEventArgs(boolisNew);

DevExpress.Web.Data.ASPxDataValidationEventArgs属性:

Errors: Dictionary<GridViewColumn, string>,行错误集合,只读。

HasErrors:bool,待处理的行是否有错。只读。

IsNewRow:bool,待处理的行是否新增行。只读。

Keys:OrderedDictionary,要删除行的主键栏位值。只读。

NewValues: OrderedDictionary,要删除行的非主键(实际上是所有栏位)栏位新值。只读。

OldValues: OrderedDictionary,要删除行的非主键(实际上是所有栏位)栏位原值。只读。

RowError:string,行错误信息。可读写。

通常在RowValidating事件中检查栏位值是否有效,如果无效,应抛出异常。

例:

//行数据检验事件

protectedvoidASPxGridView1_RowValidating(objectsender, DevExpress.Web.Data.ASPxDataValidationEventArgs e)

{

    

    //是否新增行

    if(e.IsNewRow)

    {

        if(e.NewValues["Event"] == null)

        {                   

            e.Errors.Add(this.ASPxGridView1.Columns["Event"], "事件名称不可为空");

            e.RowError = "事件名称不可为空";

            thrownewException("事件名称不可为空");

        }

    }

}

通常在HtmlRowPrepared事件中检查行是否有效并以不同的颜色来显示未通过校验的行。

通常在StartRowEditing事件中调用DoRowValidation方法触发数据校验。

以下是官方的示例代码:

usingDevExpress.Web.ASPxGridView;

usingSystem.Collections.Generic;

protectedvoidgrid_RowValidating(objectsender,

DevExpress.Web.Data.ASPxDataValidationEventArgs e) {

    // Checks for null values.

    foreach(GridViewColumn column ingrid.Columns) {

        GridViewDataColumn dataColumn = column asGridViewDataColumn;

        if(dataColumn == nullcontinue;

        if(e.NewValues[dataColumn.FieldName] == null)

            e.Errors[dataColumn] = "Value cannot be null.";

    }

    // Displays the error row if there is at least one error.

    if(e.Errors.Count > 0) e.RowError = "Please, fill all fields.";

    

    if(e.NewValues["ContactName"] != null&&

        e.NewValues["ContactName"].ToString().Length < 2) {

        AddError(e.Errors, grid.Columns["ContactName"],

        "Contact Name must be at least two characters long.");

    }

    if(e.NewValues["CompanyName"] != null&&

    e.NewValues["CompanyName"].ToString().Length < 2) {

        AddError(e.Errors, grid.Columns["CompanyName"],

        "Company Name must be at least two characters long.");

    }

    if(string.IsNullOrEmpty(e.RowError) && e.Errors.Count > 0)

    e.RowError = "Please, correct all errors.";

}

voidAddError(Dictionary<GridViewColumn, string> errors,

GridViewColumn column, stringerrorText) {

     if(errors.ContainsKey(column)) return;

     errors[column] = errorText;

 }

protectedvoidgrid_HtmlRowPrepared(objectsender,

ASPxGridViewTableRowEventArgs e) {

    // Checks whether the generated row has the errors.

    boolhasError = e.GetValue("ContactName").ToString().Length <= 1;

    hasError = hasError || e.GetValue("CompanyName").ToString().Length <= 1;

    hasError = hasError || e.GetValue("Country") == null;

    // If the row has the error(s), its text color is set to red.

    if(hasError)

        e.Row.ForeColor = System.Drawing.Color.Red;

}

protectedvoidgrid_StartRowEditing(objectsender,

DevExpress.Web.Data.ASPxStartRowEditingEventArgs e) {

    // Validates the edited row if it isn‘t a new row,.

    if(!grid.IsNewRowEditing)

        grid.DoRowValidation();

}

三十一、    客户端事件

三十二、    服务器端事件

1.服务器事件索引

事件名 英文说明    中文说明

AutoFilterCellEditorCreate  Enables you to assign editors to individual filter row cells.  允许程序员为过滤行栏位指定个性化编辑器

AutoFilterCellEditorInitialize  Enables the cell editors displayed within the auto filter row cells to be

initialized.    允许程序员为过滤行栏位指定显示格式

BeforeGetCallbackResult Occurs after a callback, when the ASPxGridView isloaded, but prior to rendering.   发生在ASPxGridView已装载但未呈现时获取回调结果。

2.AutoFilterCellEditorCreate

(1)语法:publicdelegatevoidASPxGridViewEditorCreateEventHandler(objectsender,

ASPxGridViewEditorCreateEventArgs e);

ASPxGridViewEditorCreateEventArgs类包括以下属性:

Column:GridViewDataColumn类型,只读。栏位实例。

EditorProperties:EditPropertiesBase类型,可读写。编辑器属性。

KeyValue:object类型。只读。关键栏位值。

Value:object类型。可读写。过滤栏位值。

VisibleIndex:int类型。只读。行号。

(2)英文说明:Enables you to assign editors to individual filter row cells.

(3)触发条件:必须显示了自动过滤工具条

要显示自动过滤行应该做如下设置:

this.ASPxGridView1.Settings.ShowFilterBar = DevExpress.Web.ASPxGridView.GridViewStatusBarMode.Visible;//显示自动过滤工具条

this.ASPxGridView1.Settings.ShowFilterRow = true;//显示自动过滤行

(4)中文说明:允许程序员为过滤行栏位指定个性化编辑器。

通常在该事件中初始化过滤行栏位的初始值、提供符合用户操作习惯的栏位编辑器(如采用下拉列表)

例:

switch(e.Column.FieldName)

{

    case"OCCDatetime":

        e.Value = DateTime.Now;

        break;

    default:

        break;

}

3.AutoFilterCellEditorInitialize

(1)语法:publicdelegatevoidASPxGridViewEditorEventHandler(objectsender,ASPxGridViewEditorEventArgs e);

ASPxGridViewEditorEventArgs类包括以下属性:

Column:GridViewDataColumn类型,只读。栏位实例。

Editor:ASPxEditBase类型,只读。编辑器实例。

KeyValue:object类型。只读。关键栏位值。

Value:object类型。只读。过滤栏位值。

VisibleIndex:int类型。只读。行号。

(2)英文说明:Enables the cell editors displayed within the auto filter row cells to be initialized.

(3)触发条件:必须显示了自动过滤工具条

要显示自动过滤行应该做如下设置:

this.ASPxGridView1.Settings.ShowFilterBar = DevExpress.Web.ASPxGridView.GridViewStatusBarMode.Visible;//显示自动过滤工具条

this.ASPxGridView1.Settings.ShowFilterRow = true;//显示自动过滤行

(4)中文说明:允许程序员为过滤行栏位指定显示格式。

该事件是在AutoFilterCellEditorCreate事件后执行的,可以在此事件中覆盖AutoFilterCellEditorCreate事件中所指定的属性。

例:

switch(e.Column.FieldName)

{

    case"OCCDatetime":

        e.Editor.BackColor = System.Drawing.Color.Yellow;

        break;

    default:

        break;

}

4.BeforeGetCallbackResult

(1)语法:publicdelegatevoidEventHandler(objectsender, EventArgs e);

(2)英文说明:Occurs after a callback, when the ASPxGridView isloaded, but prior to rendering.

(3)触发条件:调用AspxGridView客户端方法GetValuesOnCustomCallback。

(4)中文说明:发生在ASPxGridView已装载但未呈现时获取回调结果。

5.BeforePerformDataSelect

(1)语法:publicdelegatevoidEventHandler(objectsender, EventArgs e);

(2)英文说明:Occurs before the ASPxGridView control obtains data froma data source.

(3)触发条件:绑定数据时。

(4)中文说明:发生在ASPxGridView从数据源中获取数据之前。

通常在主从模式下用于给明细AspxGridView的数据检索参数赋值。

例:

Session["TaskCode"] = (sender asASPxGridView).GetMasterRowKeyValue();

//Session["TaskCode"]为明细AspxGridView的数据源参数

6.CancelRowEditing

(1)语法:publicdelegatevoidASPxStartRowEditingEventHandler(objectsender,

ASPxStartRowEditingEventArgs e);

ASPxStartRowEditingEventArgs类包括以下属性:

Cancel:bool类型。可读写。

(2)英文说明:Enables you to prevent changes made within a row frombeing discarded.

(3)触发条件:用户点击内置的【取消】按钮或调用CancelEdit()方法时。

(4)中文说明:取消行编辑状态前事件。

可以在该事件中阻止用户将编辑状态转换为浏览状态。(设置e.Cancel=true)例如弹出对话框提醒用户是否确实需要取消编辑状态或清除在编辑过程中缓存的数据。

7. CellEditorInitialize

(1)语法:publicdelegatevoidASPxGridViewEditorEventHandler(objectsender,

ASPxGridViewEditorEventArgs e);

ASPxGridViewEditorEventArgs类包括以下属性:

Column:GridViewDataColumn类型,只读。栏位实例。

Editor:ASPxEditBase类型,只读。编辑器实例。

KeyValue:object类型。只读。主键栏位值。

Value:object类型。只读。过滤栏位值。

VisibleIndex:int类型。只读。行号。

(2)英文说明:Enables the cell editors displayed within the edit cells to be initialized.

(3)触发条件:发生在行数据状态由浏览状态改为编辑状态时。

(4)中文说明:栏位编辑器初始化事件。

7. ClientLayout

(1)语法:publicdelegatevoidASPxClientLayoutHandler(objectsender,

ASPxClientLayoutArgs e);

ASPxClientLayoutArgs类包括以下属性:

LayoutData:string类型,可读写。布局数据。

LayoutMode: ClientLayoutMode类型(枚举)。只读。布局模式。取值范围:Loading、Saving.

 (2)英文说明:Enables you to save and restore the previously saved layout of the ASPxGridView.

(3)触发条件:在调用SaveLayout()保存布局或LoadLayout()装载布局时触发该事件。

(4)中文说明:允许你保存布局或装载之前的布局。

8. CustomButtonCallback

(1)语法:publicdelegatevoidASPxGridViewCustomButtonCallbackEventHandler( objectsender,ASPxGridViewCustomButtonCallbackEventArgs e);

ASPxGridViewCustomButtonCallbackEventArgs类包括以下属性:

ButtonID:string类型,只读。按钮名称。

VisibleIndex: int类型。只读。行号。

 (2)英文说明:Occurs when a custom command button has been clicked.

(3)触发条件:点击自定义按钮时触发。

(4)中文说明:该事件不能只在页面IsPostBack=false的情况下声明,否则无法触发。

自定义按钮可以在<dxwgv:GridViewCommandColumn>标签中定义。

例:

<dxwgv:GridViewCommandColumn Caption="操作"Visible="true">   

    <CustomButtons>

        <dxwgv:GridViewCommandColumnCustomButton ID="btnSelect"Text="自定义选择"Visibility="AllDataRows"/>

    </CustomButtons>

</dxwgv:GridViewCommandColumn>

通常在该事件中捕获按钮名称调用对应方法作出实际的回应。

例:

stringid = e.ButtonID;

switch(id)

{

    case"btnSelect":

        this.ASPxGridView1.Selection.SelectRow(e.VisibleIndex);

        break;

    default:

        break;

}

9. CustomCallback

(1)语法:publicdelegatevoidASPxGridViewCustomCallbackEventHandler(objectsender, ASPxGridViewCustomCallbackEventArgs e);

ASPxGridViewCustomCallbackEventArgs类包括以下属性:

Parameters:string类型,只读。所有自定义参数值。

(2)英文说明:Fires when a round trip to the server has been initiated bya call to the client ASPxClientGridView.PerformCallback method.

(3)触发条件:调用客户端PerformCallback方法时触发。

(4)中文说明:该事件不能只在页面IsPostBack=false的情况下声明,否则无法触发。事件参数ASPxGridViewCustomCallbackEventArgs. Parameters由程序员负责解释。

例:

//自定义回调事件

protectedvoidASPxGridView1_CustomCallback(objectsender, ASPxGridViewCustomCallbackEventArgs e)

{

    if(e.Parameters.Length > 0)

    {

        intvisibleIndex = 0;

        string[] parameterList = e.Parameters.Split(‘|‘);//取参数列表

        if(parameterList.Length > 0)

        {

            switch(parameterList[0].ToString().ToLower())

            {

                case"addnewrow"://新增

                    this.ASPxGridView1.AddNewRow();

                    break;

                case"startedit"://修改

                    if(parameterList.Length >= 2)

                    {

                        if(Int32.TryParse(parameterList[1], outvisibleIndex))

                        {

                            this.ASPxGridView1.StartEdit(visibleIndex);

                        }

                    }

                    break;

                default:

                    break;

            }

        }             

    }

}

前台代码示例:

Grid.PerformCallback(‘AddNewRow‘)

Grid.PerformCallback(‘StartEdit|2‘)

10. CustomColumnDisplayText

(1)语法:publicdelegatevoidASPxGridViewColumnDisplayTextEventHandler(objectsender, ASPxGridViewColumnDisplayTextEventArgs e);

ASPxGridViewColumnDisplayTextEventArgs类包括以下属性:

Column:GridViewDataColumn类型,只读。栏位实例。

DisplayText:string类型。可读写。显示文本。

Value:object类型。可读写。栏位值。

VisibleRowIndex:int类型。只读。行号。

ASPxGridViewColumnDisplayTextEventArgs类包括以下方法:

objectGetFieldValue(stringfieldName):获取栏位值。

objectGetFieldValue(intvisibleRowIndex, stringfieldName) :获取栏位值。

(2)英文说明:Enables custom display text to be provided forany cell.

(3)触发条件:发生在栏位绑定或取消绑定时。

(4)中文说明:允许你自定义每个单元格的显示文本。比如在数据导出时将栏位值为0改为空值。

11. CustomColumnGroup

(1)语法:publicdelegatevoidASPxGridViewCustomColumnSortEventHandler(objectsender, CustomColumnSortEventArgs e);

CustomColumnSortEventArgs类包括以下属性:

Column:GridViewDataColumn类型,可读写。栏位实例。

Handled:bool类型。可读写。是否已处理。

ListSourceRowIndex1:int类型,只读。来源行号1。

ListSourceRowIndex2:int类型,只读。来源行号2。

Result:int类型,可读写。分组结果。0表示划入同一组,1或-1表示划入不同组。

SortOrder:ColumnSortOrder类型(枚举),只读。排序方式。

Value1:object类型,只读。值1.

Value2:object类型,只读。值2.

ASPxGridViewColumnDisplayTextEventArgs类包括以下方法:

objectGetRow1Value(stringfieldName):获取来源行1的值。

objectGetRow2Value(stringfieldName):获取来源行2的值。

(2)英文说明:Provides the ability to groupdata usingcustom rules.

(3)触发条件:只有当栏位的SortMode=”Custom”并且在执行数据分组时才会触发该事件。

(4)中文说明:使用自定义规则分组数据。

当启用自定义的分组规则后应该设置e.Handled=true,否则仍按缺省规则。

该事件是上下两行逐行比较,会多次触发,尽量少用该事件并保持代码简洁。

例:调用分组

((GridViewDataColumn)this.ASPxGridView1.Columns["Score"]).Settings.SortMode = DevExpress.XtraGrid.ColumnSortMode.Custom;

this.ASPxGridView1.GroupBy(this.ASPxGridView1.Columns["Score"]);

例:划分分组

if(e.Column.FieldName == "Score")

{

    if(((int)e.Value1 < 60 && (int)e.Value2 < 60)

        || ((int)e.Value1 >= 60 && (int)e.Value1 < 80 && (int)e.Value2 >= 60 && (int)e.Value2 < 80)

        || ((int)e.Value1 >= 80 && (int)e.Value1 < 100 && (int)e.Value2 >= 80 && (int)e.Value2 < 100)

        || ((int)e.Value1 >= 100 && (int)e.Value2 >= 100))

    {

        e.Result = 0;

        e.Handled = true;

    }

}

12. CustomColumnSort

(1)语法:publicdelegatevoidASPxGridViewCustomColumnSortEventHandler(objectsender, CustomColumnSortEventArgs e);

CustomColumnSortEventArgs类包括以下属性:

Column:GridViewDataColumn类型,可读写。栏位实例。

Handled:bool类型。可读写。是否已处理。

ListSourceRowIndex1:int类型,只读。来源行号1。

ListSourceRowIndex2:int类型,只读。来源行号2。

Result:int类型,可读写。分组结果。1表示前一个值小于后一个值,0表示前后两个值相同,-1表示前一个值大于后一个值。

SortOrder:ColumnSortOrder类型(枚举),只读。排序方式。

Value1:object类型,只读。值1.

Value2:object类型,只读。值2.

ASPxGridViewColumnDisplayTextEventArgs类包括以下方法:

objectGetRow1Value(stringfieldName):获取来源行1的值。

objectGetRow2Value(stringfieldName):获取来源行2的值。

(2)英文说明:Enables you to sort data usingcustom rules.

(3)触发条件:只有当栏位的SortMode=”Custom”并且在执行数据排序时才会触发该事件。

(4)中文说明:使用自定义规则排序数据。

当启用自定义的排序规则后应该设置e.Handled=true,否则仍按缺省规则。

该事件是上下两行逐行比较,会多次触发,尽量少用该事件并保持代码简洁。

例:调用排序

((GridViewDataColumn)this.ASPxGridView1.Columns["Event"]).Settings.SortMode = DevExpress.XtraGrid.ColumnSortMode.Custom;

this.ASPxGridView1.SortBy(this.ASPxGridView1.Columns["Event"]);

例:自定义栏位排序

if(e.Column.FieldName == "Event")

{

    if(e.SortOrder == DevExpress.Data.ColumnSortOrder.Ascending)

    {

        //按栏位长度正序

        if(e.Value1.ToString().Length < e.Value2.ToString().Length)

        {

            e.Result = 1;

        }

        elseif(e.Value1.ToString().Length == e.Value2.ToString().Length)

        {

            e.Result = 0;

        }

        elseif(e.Value1.ToString().Length > e.Value2.ToString().Length)

        {

            e.Result = -1;

        }

    }

    elseif(e.SortOrder == DevExpress.Data.ColumnSortOrder.Descending)

    {

        //按栏位长度倒序

        if(e.Value1.ToString().Length < e.Value2.ToString().Length)

        {

            e.Result = -1;

        }

        elseif(e.Value1.ToString().Length == e.Value2.ToString().Length)

        {

            e.Result = 0;

        }

        elseif(e.Value1.ToString().Length > e.Value2.ToString().Length)

        {

            e.Result = 1;

        }

    }

    e.Handled = true;

}

13. CustomDataCallback

(1)语法:publicdelegatevoidASPxGridViewCustomDataCallbackEventHandler(objectsender, ASPxGridViewCustomDataCallbackEventArgs e);

ASPxGridViewCustomDataCallbackEventArgs类包括以下属性:

Parameters:string类型,只读。自定义参数。

Result:object类型。可读写。自定义处理结果。

(2)英文说明:Fires when a round trip to the server has been initiated bya call to the client ASPxClientGridView.GetValuesOnCustomCallback method.

(3)触发条件:调用AspxGridView客户端方法GetValuesOnCustomCallback时触发本事件。

(4)中文说明: 程序员可以获取传入参数(e.Parameters)作出回应(设置Result值)。

客户端调用GetValuesOnCustomCallback方法,后台CustomDataCallback事件返回结果,然后在GetValuesOnCustomCallback方法中指定的javascrip方法中显示处理结果。

例:前台代码

function GetDate() {

    grid.GetValuesOnCustomCallback("GetDate", GetDateCallback);

}

function GetDateCallback(result) {

    alert(result);

}

例:后台代码

if(e.Parameters == "GetDate")

{

    e.Result = DateTime.Now.ToShortDateString();

}

14. CustomErrorText

(1)语法:publicdelegatevoidASPxGridViewCustomErrorTextEventHandler(objectsender, ASPxGridViewCustomErrorTextEventArgs e);

ASPxGridViewCustomErrorTextEventArgs类包括以下属性:

ErrorText:string类型,可读写。错误文本。

ErrorTextKind: GridViewErrorTextKind类型(枚举)。只读。错误来源类型。取值范围:General、RowValidate。

Exception:Exception类型。只读。异常。

(2)英文说明:Enables you to provide custom error descriptions.

(3)触发条件:当AspxGridView发生错误时触发该事件

(4)中文说明:允许你自定义错误描述。

你可以在该事件中本地化错误文本。在RowValidating事件中抛出的异常,ErrorTextKind=GridViewErrorTextKind.RowValidate,其它情况下ErrorTextKind=GridViewErrorTextKind.General。

15. CustomGroupDisplayText

(1)语法:publicdelegatevoidASPxGridViewColumnDisplayTextEventHandler (objectsender, ASPxGridViewColumnDisplayTextEventArgs e);

ASPxGridViewColumnDisplayTextEventArgs类包括以下属性:

Column:GridViewDataColumn类型,只读。栏位实例。

DisplayText:string类型。可读写。显示文本。

Value:object类型。可读写。栏位值。

VisibleRowIndex:int类型。只读。行号。

ASPxGridViewColumnDisplayTextEventArgs类包括以下方法:

objectGetFieldValue(stringfieldName):获取栏位值。

objectGetFieldValue(intvisibleRowIndex, stringfieldName) :获取栏位值。

(2)英文说明:Enables you to provide custom content forgrouprows.

(3)触发条件:显示分组数据时触发。

(4)中文说明:允许你自定义分组行内容。

16. CustomJSProperties

(1)语法:publicdelegatevoidASPxGridViewClientJSPropertiesEventHandler (objectsender, ASPxGridViewClientJSPropertiesEventArgs e);

ASPxGridViewClientJSPropertiesEventArgs类包括以下属性:

Properties:Dictionary<stringobject>类型,只读。Js属性。

(2)英文说明:Enables you to supply any server data that can then be parsed onthe client.

(3)触发条件:发生在AspxGridView呈现时。

(4)中文说明:允许你自定义客户端属性。要求属性名必须以“cp”作为前缀。你可以在此事件中自行解释JS属性。

例:C#代码

//自定义js属性

protectedvoidASPxGridView1_CustomJSProperties(objectsender, ASPxGridViewClientJSPropertiesEventArgs e)

{

    e.Properties["cpVisibleRowCount"] = this.ASPxGridView1.VisibleRowCount;

}

例:客户端代码

alert(grid.cpVisibleRowCount);

17. CustomSummaryCalculate

(1)语法:publicdelegatevoidCustomSummaryEventHandler (objectsender, CustomSummaryEventArgs e);

CustomSummaryEventArgs类包括以下属性:

FieldValue:object类型,只读。栏位值。

GroupLevel:int类型,只读。分组节号。

GroupRowHandle:int类型,只读。分组行号。

IsGroupSummary:bool类型,只读。是否组汇总。

(2)英文说明:Enables you to calculate summary values manually.

(3)触发条件:发生在AspxGridView呈现时。

(4)中文说明:允许你自定义客户端属性。要求属性名必须以“cp”作为前缀。你可以在此事件中自行解释JS属性。

例:C#代码

//自定义js属性

protectedvoidASPxGridView1_CustomJSProperties(objectsender, ASPxGridViewClientJSPropertiesEventArgs e)

{

    e.Properties["cpVisibleRowCount"] = this.ASPxGridView1.VisibleRowCount;

}

例:客户端代码

alert(grid.cpVisibleRowCount);

三十三、    快捷键

三十四、    样式

AspxGridView使用<Styles>标签用于设置样式。

1.GridViewStyles重要属性

属性名 数据类型    英文说明    中文说明

AlternatingRow  GridViewAlternatingRowStyle Gets the style settings used to paint Alternating Data Row. 奇偶行样式

CommandColumn   GridViewCommandColumnStyle  Gets the style settings used to paint the Command Column‘s cells.   命令栏位样式

Header  GridViewHeaderStyle Gets the style settings used to paint column headers.   栏位题头样式

2. GridViewAlternatingRowStyle重要属性

属性名 数据类型    英文说明    中文说明

Enabled DefaultBoolean(枚举)  Gets or sets whether the style settings used to paint alternating rows are

enabled.    是否启用奇偶行样式。可读写。取值范围:True、False、Default

三十五、    AspxGridView服务器端重要属性

属性名 数据类型    英文说明    中文说明

DataSource  Object  Gets or sets the objectfromwhich the data-bound control retrieves its list of data items. 数据源。所支持的数据源类型包括:SqlDataSource、ObjectDataSource、XmlDataSource、AccessDataSource、SiteMapDatasource

DataSourceID    String  Gets or sets the ID of the control fromwhich the data-bound control retrieves its list of data items.  数据源ID.

            

三十六、    AspxGridView服务器端重要方法

方法名 参数  英文说明    中文说明

Void AddNewRow()    无   Adds a newrecord.  新增行

Void AutoFilterByColumn(GridViewColumn collmn,stringvalue) column:要过滤的栏位

value:要过滤的栏位值(可以使用通配符)  Applies a filter to the specified data column.  按指定栏位过滤

Void CancelEdit()   无   Cancels all the changes made and switches the ASPxGridView to browse mode.  取消编辑模式。终端用户还可以通过点击【取消】按钮来取消编辑模式。

Void ClearSort()    无   Clears sorting applied to the ASPxGridView. 清除排序规则。如果有分组,将打散分组。

Void DeleteRow(intvisibleIndex)    visibleIndex:行号 Deletes the specified row.  删除指定行。

Void DoRowValidation()  无   Validates the row currently being edited.   行数据校验。

String SaveClientLayout()   无   Saves the ASPxGridView‘s layout.    保存布局。

Void LoadClientLayout(stringlayoutData)    layoutData:布局数据 Restores the ASPxGridView‘s layout fromthe specified string.   还原布局。

三十七、    GridViewColumnCollection服务器端重要属性

属性名 数据类型    英文说明    中文说明

Count   Int Gets the GridView columns count.    栏位个数

Grid    AspxGridView    Gets the Grid View that owns the collection.    对应AspxGridView

Item    GridViewColumn  Returns the column with the specified name, field name or caption. GridView栏位

Owner   DevExpress.Web.ASPxClasses.IWebControlObject    Gets or sets the collection‘s owner.    父容器

三十八、    AspxGridView客户端重要属性

属性名 数据类型    英文说明    中文说明

selectedWithoutPageRowCount Int     不在当前页的选中行数

activeElement   Variant    

allowFocusedRow Boolean    

allowMultipleCallbacks  Boolean    

allowMultiSelection Boolean    

autoFilterDelay String     

autoPostBack    Boolean    

BeginCallback   Object     

CallbackError   Object     

callbackOnFocusedRowChanged Boolean    

callbackOnSelectionChanged  Boolean    

callBacksEnabled    Boolean    

childrenCache   Object     

clientEnabled   Boolean    

clientVisible   Boolean    

ColumnGrouping  Object     

ColumnMoving    Object     

ColumnResizing  Object     

columns Object     

ColumnSorting   Object     

ColumnStartDragging Object     

confirmDelete   String     

ContextMenu Object     

CustomButtonClick   Object     

CustomizationWindowCloseUp  Object     

custwindowLeft  Variant    

custwindowTop   Variant    

custwindowVisible   Variant    

DetailRowCollapsing Object     

DetailRowExpanding  Object     

dialogContentHashTable  Object     

editorIDList    Object     

enabled Boolean    

EndCallback Object     

filterKeyPressInputValue    String     

filterKeyPressTimerId   Number     

filterPopupActiveColumnIndex    Number     

filterPopupWindow   Variant    

filterRowConditions Object     

filterRowMenuColumnIndex    Number     

fixedColumnCount    Number     

FocusedRowChanged   Object     

focusedRowIndex Number     

funcCallbacks   Object     

indentColumnCount   Number     

Init    Object     

initialFocused  Boolean    

isASPxClientControl Boolean    

isColumnsResizable  Boolean    

isHorizontalScrolling   Boolean    

isInitialized   Boolean    

isMainControlResizable  Boolean    

isNative    Boolean    

isPagerUiCallback   Boolean    

isVerticalScrolling Boolean    

keys    Object     

lastMultiSelectIndex    Number     

leadingAfterInitCall    Boolean    

loadingDivElement   Variant    

loadingPanelElement Variant    

lockFilter  Boolean    

lockVirtualScrolling    Boolean    

mainElement DispHTMLTable      

name    String     

pageRowCount    Number     

pageRowSize Number     

renderIFrameForPopupElements    Boolean    

requestCount    Number     

RowClick    Object     

RowCollapsing   Object     

RowDblClick Object     

RowExpanding    Object     

savedCallbacks  Variant    

savedScrollPosition Number     

scrollToRowIndex    Number     

selectedWithoutPageRowCount Number     

SelectionChanged    Object     

serverEvents    Object     

sizeCorrectedOnce   Boolean    

uniqueID    String     

userChangedSelection    Boolean    

virtualScrollRowHeight  Number     

virtualScrollTimerId    Number     

visibleStartIndex   Number     

三十九、    AspxGridView客户端常用方法

方法名及语法  英文说明    中文说明

String GetRowKey(visibleIndex:int)      获取行主键值

ASPxClientGridViewColumn _getColumn(index:int)  Returns the client column that resides at the specified position within the column collection.  根据栏位序号取栏位对象。与GetColumn方法功能相同。

ASPxClientGridViewColumn  _getColumnByField(fieldname:string)   Returns the client column which isbound to the specified data source field.    根据栏位名称取栏位对象。与GetColumnByField方法功能相同。

ASPxClientGridViewColumn  _getColumnById(id:string) Returns the column with the specified unique identifier.    根据栏位id取栏位对象。与GetColumnById方法功能相同。

1.Int _getColumnIndexByColumnArgs(column:string)

2.int  _getColumnIndexByColumnArgs(column: ASPxClientGridViewColumn)        根据栏位名称或栏位对象取栏位序号。

1.ASPxClientGridViewColumn  _getColumnObjectByArg(arg:int)

2.ASPxClientGridViewColumn  _getColumnObjectByArg(arg: ASPxClientGridViewColumn)

3.ASPxClientGridViewColumn  _getColumnObjectByArg(arg:string)       取栏位对象。参数可以是:1.栏位序号;2.栏位对象;3.栏位名称;4.栏位id

Int _getColumnsCount()      取栏位个数

List<Object> _getEditors()        取所有栏位编辑器列表。返回的是一个object数组。只有当AspxGridView进入编辑状态时才能获取到编辑器。通常是Html元素的text、checkbox、button类型。

Int _getFocusedRowIndex()   Returns the focused row‘s index.    取焦点行号。只有设置AllowFocusedRow="true"才能取到焦点行号。与GetFocusedRowIndex功能相同。

Int _getNumberFromEndOfString(st:string)        从后往前取字符串对应数字。只返回整数,不取小数点前数字字符。该函数有BUG,会出现死循环,不要调用。

Int _getRowIndexOnPage(visibleIndex:int)        取指定行在页面上处于第几行。默认等于行号。(从0开始计数)

Int _getSelectedRowCount()  Returns the number of selected rows.    取选中行数。与GetSelectedRowCount功能相同。

Bool _isGroupRow(row:int)   Indicates whether the specified row isgrouprow. 判断指定行是否分组行。与IsGroupRow方法功能相同。

Bool _isRowSelected(visibleIndex:int)       判断指定行是否被选中。

Void _selectAllRowsOnPage(checked:bool) Selects all unselected rows displayed onthe current page.  选中或取消选中当前页中所有行。与SelectAllRowsOnPage方法等效。

Void _selectAllSelBtn(checked:bool)     将所有行中的选择列置为选中状态或取消选择状态。不影响行的选中状态,在翻页时会丢弃。选择列可以使用以下方式定义:

<dxwgv:GridViewCommandColumn Caption="选择"Name="IsSelect"ButtonType="Button"ShowSelectCheckbox="true">                </dxwgv:GridViewCommandColumn>

Void _setFocusedRowIndex(visibleIndex:int)  Moves focus to the specified row.   设置指定行为焦点行。与SetFocusedRowIndex方法功能相同。

Void _updateEdit()  Saves all the changes made and switches the ASPxGridView to browse

mode.   更新数据。与UpdateEdit方法功能相同。

voidAddNewRow()    Adds a newrecord.  新增行

Void ApplyFilter(filterExpression : String) Applies the specified filter expression to the ASPxGridView.    应用过滤表达式。与设置AspxGridView的FilterExpression等效。

1:voidAutoFilterByColumn(column: ASPxClientGridViewColumn, val:string);

2:voidAutoFilterByColumn(columnIndex:intvar:string);

3:voidAutoFilterByColumn(columnFieldNameOrId:string, val:string);  Applies a filter to the specified data column.  按指定栏位值过滤

Void CancelEdit()   Cancels all the changes made and switches the ASPxGridView to browse

mode.   取消编辑

Void ClearFilter()  Clears the filter expression applied to a client ASPxGridView.  清除过滤表达式

Void CollapseAll()  Collapses all grouprows.   收缩所有分组数据行

Void CollapseAllDetailRows()    Collapses all detail rows.  收缩所有明细数据行

Void CollapseDetailRow(visibleIndex : int)  Collapses the specified detail row. 收货指定明细数据行

1.voidCollapseRow(intvisibleIndex)

2.voidCollapseRow(intvisibleIndex, boolrecursive);   Collapses the specified grouprow and optionally child group

rows at all nesting levels. 收缩指定分组数据行.(允许递归)

Void DeleteRow(visibleIndex : int)  Deletes the specified row.  删除指定行。

Void ExpandAll()    Expands all grouprows. 展开所有分组数据行。

Void ExpandAllDetailRows()  Expands all detail rows.    展开所有明细数据行。

Void ExpandDetailRow(

visibleIndex : int) Expands the specified detail row.   展开指定明细数据行。

1.voidExpandRow(intvisibleIndex)

2.voidExpandRow(intvisibleIndex, boolrecursive); Expands the specified grouprow preserving the collapsed state of any child grouprow.  展开指定分组数据行。可以递归。

1.voidFocusEditor(ASPxClientGridViewColumn

column)

2. voidFocusEditor(intcolumnIndex)

3. voidFocusEditor(stringcolumnFieldNameOrId) Moves focus to the specified edit cell within the edited row.   将光标移动到指定栏位编辑器中。可以传递3种参数。

Bool GetCientVisible()  Returns a value specifying whether a control isdisplayed.  判断AspxGridView控件是否可见。

ASPxClientGridViewColumn GetColumn(index:int)   Returns the client column that resides at the specified position within the

column collection.  根据栏位序号取栏位对象。

ASPxClientGridViewColumn GetColumnByField(fieldName)    Returns the client column which isbound to the specified data source field.    根据栏位名称取栏位对象。

ASPxClientGridViewColumn GetColumnById(id)  Returns the column with the specified unique identifier.    根据栏位id取栏位对象。

Int GetColumnIndex(colId:string)        根据栏位id取栏位序号.

ASPxClientGridViewColumn GetColumnObject(colId:string)      根据栏位id取栏位对象。

Int GetColumnsCount()   Returns the number of columns within the client ASPxGridView.   取栏位个数。

1.voidGetEditor(stringcolumnFieldNameOrId);

2.voidGetEditor(ASPxClientGridViewColumn column);

3.voidGetEditor(intcolumnIndex);  Returns the editor used to edit the specified column‘s values.  取栏位编辑器。参数可以是栏位名称、栏位对象、栏位序号。

1.stringGetEditValue(intcolumnIndex);

2.stringGetEditValue(ASPxClientGridViewColumn column);

3.stringGetEditValue(stringcolumnFieldNameOrId);  Returns the value of the specified edit cell.   取栏位编辑器值。参数可以是栏位名称、栏位对象、栏位序号。

Object GetDataRow(visibleIndex:index)       取数据行。返回一个<tr>元素。每行数据的html元素id命名规则:id=【ASPxGridViewID】_DXDataRow[rowIndex]可以通过如下方式访问栏位数据:

Var dataRow = grid.GetDataRow(0);

Var colValue1 = dataRow.all[0].innerHTML

GetEditFormTable()     

GetEditingErrorRow(obj)    

GetEditingRow(obj)     

GetEditor(column)      

GetEditorByColumnIndex(colIndex)       

GetEditorIndex(editorId)       

GetEditorPrefix()      

GetEditorValue(editor)     

GetEditorValues()      

GetEditValue(column)       

GetExpandedGroupRow(visibleIndex)      

GetFilterControl()     

GetFilterControlPopup()    

GetFilterRowMenu()     

GetFilterWindowContent()       

GetFixedColumnsDiv()       

GetFixedColumnsHelper()    

Int GetFocusedRowIndex()    Returns the focused row‘s index.    取焦点行行号。

GetFocusedRowInput()       

GetFuncCallBack(index)     

getGridByRow(rowEvt)       

GetGridTD()    

GetGroupRow(visibleIndex)      

GetHeadersRow()    

getHorzScrollableControl()     

GetHorzScrollDiv()     

GetHorzScrollDivs()    

getIsColumnCanDoOperation(colElement,op)       

getIsColumnCanGroup(colElement)    

getIsColumnCanSort(colElement)     

GetItemElementName(element)    

GetLinkElement(element)    

GetLoadingDiv()    

GetLoadingPanelContainer()     

GetLoadingPanelDiv()       

GetLoadingPanelElement()       

GetMainElement()       

GetMainTable()     

Void GetPageRowValues(fieldNames : String,

onCallback : ASPxClientGridViewValuesCallback)  Returns the row values displayed within the current page.   取当前页所有行指定栏位值。结果为object数组,在回调函数中处理返回结果。

GetParentRowsWindow()      

GetPopupEditForm()     

GetRootTable()     

GetRow(visibleIndex)       

getRowByHtmlEvent(evt)     

getRowIndex(rowId)     

GetRowKey(visibleIndex)    

Void GetRowValues(

visibleIndex : int,

fieldNames : String,

onCallback : ASPxClientGridViewValuesCallback)  Returns the values of the specified data source fields within the specified row.    取指定行指定列值。在回调函数中处理返回结果。

getScrollableControl()     

getScrollableHelper()      

getScrollPosition(scrollableDiv, isTop)    

GetSelectedFieldValues(fieldNames : String,

onCallback : ASPxClientGridViewValuesCallback)  Returns the row values displayed within all selected rows.  取选中行栏位值。返回对象数组。在回调函数中处理返回结果。

Int GetSelectedRowCount()   Returns the number of selected rows.    取选中行数量。

GetSelectedState()     

GetSelectionInput()    

GetStyleTable()    

Int GetTopVisibleIndex()    Returns the index of the data row displayed at the ASPxGridView‘s top.  取当前页首行行号。

Void GetValuesOnCustomCallback(args : String,

onCallback : ASPxClientGridViewValuesCallback)  Sends a callback to the server and generates the server-side

ASPxGridView.CustomDataCallback eventpassing it the specified

argument.   取自定义回调函数直接。结果在服务器端CustomDataCallback事件中返回。在回调函数中处理返回结果。

getVertScrollPosition()    

getVirtualPageIndex()      

getVirtualScrollMarginTop()    

Void GetVisibleRowsOnPage() Returns the number of rows displayed within the active page.   取当前页首行行号。

Void GotoPage(pageIndex:int)    Selects the specified page. 跳到指定页。

gridCallBack(arguments)    

gridFuncCallBack(arguments, onCallBack)    

1:voidGroupBy(intcolumnIndex);

2:voidGroupBy(ASPxClientGridViewColumn column);

3:voidGroupBy(stringcolumnFieldNameOrId);

4:voidGroupBy(stringcolumnFieldNameOrId, intgroupIndex);

5:voidGroupBy(intcolumnIndex, intgroupIndex);

6:voidGroupBy(ASPxClientGridViewColumn column, intgroupIndex);

7:voidGroupBy(intcolumnIndex, intgroupIndex,stringsortOrder);

8:voidGroupBy(ASPxClientGridViewColumn column, intgroupIndex, stringsortOrder);

9:voidGroupBy(stringcolumnFieldNameOrId, intgroupIndex, stringsortOrder);   Groups data bythe values of the specified column.  按指定栏位分组。

HeaderColumnResizing(e)    

headerDoClick(drag)    

HeaderMouseDown(element, e)    

Void HideCustomizationWindow()  Closes the Customization Window.    关闭自定义Form。

HideFilterControlPopup()       

HideFilterPopup()      

HideLoadingDiv()       

HideLoadingPanel()     

HideLoadingPanelOnCallback()       

HideParentRows()       

HidePopupEditForm()    

Bool InCallback()   Returns a value that determines whether a callback request sent bya web

control isbeing currently processed onthe server side.    判断AspxGridView是否处于服务器回调过程中。

InitailizeFocus()      

Initialize()       

InitializeCallBackData()       

InlineInitialize()     

Bool IsCustomizationWindowVisible() Indicates whether the Customization Window isdisplayed.    判断自定义Form是否可见。

Bool IsDataRow(visibleIndex:int)    Indicates whether the specified row isa data row.  判断指定行是否数据行。

IsDisplayed()      

IsElementBelongsToGrid(elementId)      

IsGroupHeader(id)      

Bool IsGroupRow(visibleIndex:int)   Indicates whether the specified row isgrouprow. 判断指定行是否分组行。

Bool IsGroupRowExpanded(visibleIndex:int)   Indicates whether the specified grouprow isexpanded.  判断指定分组行是否已展开。

IsRightToLeft()    

IsServerEventAssigned(eventName)       

IsTagertElementGroupPanel(targets)     

isVirtualScrollOutOfCurPage()      

IsVisible()    

mainTableClick(evt)    

mainTableClickCore(evt)    

mainTableDblClick(evt)     

mainTableDblClickCore(evt)     

MakeRowVisible(visibleIndex)       

Void MoveColumn(column, columnMoveTo, moveBefore, moveToGroup, moveFromGroup)   Hides the specified column. 隐藏或移动栏位。有15种语法。

Void NextPage() Activates the next page.    跳到下一页。

OnAfterCallback()      

OnBeforeCallback()     

OnBeforeCallbackOrPostBack()       

onCallBack(result)     

OnCallbackError(result, data)      

OnCallbackGeneralError(errorMessage)       

OnColumnFilterInputChanged(editor)     

OnColumnFilterInputKeyPress(editor, e)     

OnColumnFilterInputSpecKeyPress()      

OnColumnFilterInputSpecKeyPress(editor, e)     

OnControlClick(clickedElement, htmlEvent)      

onFilterItemOut(row)       

onFilterItemOver(row)      

OnFilterKeyPressTick()     

onFilterPopupCallback(values)      

OnFuncCallback(result)     

OnParentRowMouseEnter(element)     

OnParentRowMouseLeave(evt)     

OnVirtualScroll(event)     

Void PerformCallback(args: String)  Sends a callback to the server and generates the server-side ASPxGridView.CustomCallback event, passing it the specified argument.  触发AspxGridView服务器端CustomCallBack事件。常用来将客户端方法转换为服务器方法。

prepareCallbackArgs(serializedArgs, rootTD)    

Void PrevPage() Activates the previous page.    跳到上一页。

ProcessCallback(result)    

ProcessCallbackError(errorObj)     

ProcessCallbackGeneralError(errorMessage)      

RaiseBeginCallback(command)    

RaiseCallbackError(message)    

RaiseColumnGrouping(column)    

RaiseColumnMoving(targets)     

RaiseColumnResizing(column)    

RaiseColumnSorting(column)     

RaiseColumnStartDragging(column)       

RaiseContextMenu(objectType, index, htmlEvent)     

RaiseCustomizationWindowCloseUp()      

RaiseDetailRowCollapsing(visibleIndex)     

RaiseDetailRowExpanding(visibleIndex)      

RaiseEndCallback()     

RaiseFocusedRowChanged()       

RaiseInit()    

RaiseRowClick(visibleIndex, htmlEvent)     

RaiseRowCollapsing(visibleIndex)       

RaiseRowDblClick(visibleIndex, htmlEvent)      

RaiseRowExpanding(visibleIndex)    

RaiseSelectionChanged(visibleIndex, isSelected, isAllRecordsOnPage, isChangedOnServer)    

Refresh()      

RegisterServerEventAssigned(eventNames)    

RestoreActiveElementSettings()     

RestoreCallbackSettings()      

restoreScrollSettings()    

restoreVerticalScrollPosition()    

restoreVirtualScrollPosition()     

SaveActiveElementSettings(element)     

SaveCallbackSettings()     

saveScrollSettings()       

Void SelectAllRowsOnPage(selected:bool) Selects all unselected rows displayed onthe current page.  选中或取消选中当前页中所有行。

SelectRow(visibleIndex, checked, fromCheckBox)     

SelectRowCore(visibleIndex, check)     

1.voidSelectRowOnPage(intvisibleIndex);

2.voidSelectRowOnPage(intvisibleIndex, bool

selected);  Selects or deselects the specified row displayed onthe current

page.   选中或取消选中当前页面上指定行。

1: voidSelectRows()

2: voidSelectRows(intvisibleIndex)

3: voidSelectRows(int32[] visibleIndces)

4: voidSelectRows(intvisibleIndex,boolselected)

5: voidSelectRows(int32[] visibleIndces,boolselected) Selects or deselects the specified row within the

ASPxGridView.   选中或取消选中指定行。可以不在当前页。如果参数中包含了行号(visibleIndex),必须指定KeyFieldName。

1.voidSelectRowsByKey(objectkey);

2.voidSelectRowsByKey(Object[] keys);

3.voidSelectRowsByKey(objectkey, bool

selected);

4.voidSelectRowsByKey(Object[] keys, bool

selected);  Selects or deselects the specified rows displayed within the

ASPxGridView.   根据主键值选中或取消选中行。可以提供多个主键值选中或取消选中多行。

SendPostBack(params)       

SetClientVisible(visible)      

setDragImagesPosition(el, left)    

SetEditValue(column, value)    

SetFilterEnabled(isFilterEnabled)      

SetFocusedRowIndex(visibleIndex)       

SetHeadersClientEvents()       

SetLoadingDivBounds(offsetElement, loadingDiv)     

SetLoadingPanelLocation(offsetElement, loadingPanel, x, y, offsetX, offsetY)       

setOnVirtualScroll()       

setScrollPosition(scrollableDiv, newScrolPos, isTop)       

SetVisible(visible)    

ShowCustomizationWindow(showAtElement)     

ShowError(errorText)       

ShowFilterControl()    

ShowFilterPopup(headerName, colIndex, htmlEvent)       

ShowParentRows(element)    

SortBy(column, sortOrder, reset, sortIndex)    

startColumnResizing(element, e)    

StartEditRow(visibleIndex)     

StartEditRowByKey(key)     

targetAdding(targets, element)     

targetChanged(targets)     

targetChanging(targets)    

targetImagesChangeVisibility(vis)      

UnGroup(column)    

UnselectAllRowsOnPage()    

UnselectRowOnPage(visibleIndex)    

UnselectRows(visibleIndices)       

UnselectRowsByKey(keys)    

UpdateEdit()       

UpdateHorzScrollDivs(onResize)     

UpdateVerticalScrollControls()     

updateVirtualMarginBottom()    

VirtualScroll()    

1.PerformCallback

其参数由程序员负责解释。可以某固定字符作为参数分隔符。

例:

//自定义回调事件

protectedvoidASPxGridView1_CustomCallback(objectsender, ASPxGridViewCustomCallbackEventArgs e)

{

    if(e.Parameters.Length > 0)

    {

        intvisibleIndex = 0;

        string[] parameterList = e.Parameters.Split(‘|‘);//取参数列表

        if(parameterList.Length > 0)

        {

            switch(parameterList[0].ToString().ToLower())

            {

                case"addnewrow"://新增

                    this.ASPxGridView1.AddNewRow();

                    break;

                case"startedit"://修改

                    if(parameterList.Length >= 2)

                    {

                        if(Int32.TryParse(parameterList[1], outvisibleIndex))

                        {

                            this.ASPxGridView1.StartEdit(visibleIndex);

                        }

                    }

                    break;

                default:

                    break;

            }

        }             

    }

}

前台代码示例:

Grid.PerformCallback(‘AddNewRow‘)

Grid.PerformCallback(‘StartEdit|2‘)

四十、 AspxGridView客户端非常用方法

方法名及语法  英文说明    中文说明

_constDXCanGroup()     

_constDXCustWindow()       

_constDXDataRow()      

_constDXDropSource()       

_constDXDropTarget()       

_constDXEmptyHeader()      

_constDXGroupRow()     

_constDXMainTable()    

Object _getStyleRow(index:int, rowStyle:int)        取行样式。Index:行号。rowStyle:样式类型,数据行为1,分组行为2。返回一个<tr>元素。

Bool _isTrueInCheckList(checkList, index)      

Void _setFocusedRowInputValue()     将焦点行编辑框的值设置为当前焦点行行号。焦点行编辑框是一个隐藏控件,命名为:[ASPxGridViewID]_DXFocusedRowInput

Bool _validate(list:List<object>)     对编辑器列表中的值进行校验

Function AdjustControl(checkSizeCorrectedFlag)      调整控件

Function AdjustControlCore()        调整核心控件

Function AfterInitialize()      处理化后处理

voidApplyColumnAutoFilterCore(editor:object)       立即应用自动栏位过滤。在过滤行栏位中输入数据后调用本方法实现自动过滤。

objectGetArrowDragDownImage()      取拖动开始时箭头图像。返回一个IMG对象。

objectGetArrowDragUpImage()        取拖动放下时箭头图像。返回一个IMG对象。

objectGetArrowDragFieldImage()     取拖动经过栏位时箭头图像。返回一个IMG对象。

objectGetAutoFilterEditor(column)      取自动过滤栏位编辑器

Object GetAutoFilterEditorInputElement(editor)      取自动过滤栏位编辑器对应html元素

GetCallbackState()     

GetChild(idPostfix)    

GetChildElementById(childName)     

Object GetColResizedInput()     取栏位宽度调整辅助控件。栏位宽度调整辅助控件是一个隐藏控件,命名为:[ASPxGridViewID]_DXColResizedInput

GetCorrectCommand(arguments)       

Object GetCustomizationWindow()     取自定义编辑Form

Object GetCustomizationWindowElement()      取自定义编辑Form对应html元素

Object GetDataRowSelBtn(index:int)      取指定行选择框对象。返回一个<input type=checkbox>元素。

        

四十一、    ASPxClientGridViewColumn(客户端栏位)常用属性

属性名 数据类型    英文说明    中文说明

fieldName   String  Gets the name of the database field assigned to the current column. 对应数据库中栏位名称。只读。

id  string  Obsolete. Gets the column‘s unique identifier.  栏位id。只读。

index   Int Gets the column‘s position within the collection.   栏位序号。只读。

name    String  Gets the column‘s name. 栏位名称。只读。

四十二、    嵌套AspxGridView的特殊控制

1.控制在同一时间只允许一行展开

设置主AspxGridView的SettingsDetail.AllowOnlyOneMasterRowExpanded属性(true表示只允许一行展开,false表示可允许多行展开)

例:

this.MasterGrid.SettingsDetail.AllowOnlyOneMasterRowExpanded=true;

2.SettingsDetail属性设置

属性名 数据类型    英文说明    中文说明

AllowOnlyOneMasterRowExpanded   Bool    Gets or sets whether several master rows can be expanded

simultaneously. 是否在同一时间只能展开一行。可读写。

IsDetailGrid    Bool    Gets or sets whether the current ASPxGridView isa detail grid. 是否明细AspxGridView。可读写。

ShowDetailButtons   Bool    Gets or sets whether detail buttons are displayed.  是否显示明细按钮。可读写。

ShowDetailRow   Bool    Gets or sets whether the ASPxGridView can display detail rows.  是否显示明细AspxGridView。可读写。只有该属性设置为true才能看到展开按钮。

3.嵌套AspxGridView树展开与折叠(客户端)

(1)使用ExpandAllDetailRows()展开所有行

语法:function ExpandAllDetailRows();

如果SettingsDetail.AllowOnlyOneMasterRowExpanded=true,则只展开第一行,否则展开所有行。

(2)使用ExpandDetailRow()展开指定行

语法:function ExpandDetailRow(visibleIndex : int);//可以不是当前页的行号

(3)使用CollapseAllDetailRows()折叠所有行

语法:function CollapseAllDetailRows();

(4)使用CollapseDetailRow()折叠指定行

语法:function CollapseDetailRow(visibleIndex : int); //可以不是当前页的行号

四十三、    AspxGridView客户端源代码可借鉴点

1.将字符串转为数字(从后开始)

_getNumberFromEndOfString:function (st) {

        varvalue=-1;

        varn=st.length-1;

        while(parseInt(st.substr(n),10)>=0 && n>=0) {

            value=parseInt(st.substr(n),10);

            n--;

        }returnvalue;

    }

四十四、    AspxGridView服务器端源代码可借鉴点

四十五、    BUG

1.  在JS打开一个模态窗口之前如果GridViewMaster.Settings.ShowHorizontalScrollBar = true则会使得AspxGridView出现一片灰色,关闭模态窗口后又显示正常。

四十六、    附录

1.格式化标识符

(1)数字格式化标识符

字母   含义

C或c Currency 货币格式

D或d Decimal 十进制格式(十进制整数,不要和.Net的Decimal数据类型混淆了)

E或e Exponent 指数格式

F或f Fixed point 固定精度格式

G或g General 常用格式

N或n 用逗号分割千位的数字,比如1234将会被变成1,234

P或p Percentage 百分符号格式

R或r Round-trip  圆整(只用于浮点数)保证一个数字被转化成字符串以后可以再被转回成同样的数字

X或x Hex 16进制格式

占位符

符号  名称  含义

0   0占位符    用0填充不足的位数

#   数字占位符   用#代替实际的位数

.   十进制小数点 

,   千位分隔符   用逗号进行千位分割,比如把1000分割成1,000

%   百分符号    显示一个百分标识

E+0

E-0

e+0

e-0 指数符号    用指数符号格式化输出

\   专一字符    用于传统格式的格式化序列,比如"\n"(新行)

‘ABC‘

"ABC"   常量字符串   显示单引号或者双引号里面的字符串

;   区域分隔符   如果数字会被格式化成整数,负数,或者0,用;来进行分隔

,.  缩放符号    数字除以1000

(2)日期格式化标识符

D      

D   MM/dd/yyyy  ShortDatePattern(短日期模式)

D   dddd,MMMM dd,yyyy    LongDatePattern(长日期模式)

F   dddd,MMMM dd,yyyy HH:mm Full date and time (longdate and shorttime)(全日期和时间模式)

F   dddd,MMMM dd,yyyy HH:mm:ss  FullDateTimePattern (longdate and longtime)(长日期和长时间)

G   MM/dd/yyyy HH:mm    General (shortdate and shorttime)(通用模式,短日期和短时间)

G   MM/dd/yyyy HH:mm:ss General (shortdate and longtime)(通用模式,短日期和长时间)

M,M MMMM dd     MonthDayPattern(月天模式)

r,R ddd,dd MMM yyyy,HH‘:‘mm‘:‘ss ‘GMT‘  RFC1123Pattern (RFC1123模式)

S   yyyy-MM-dd HH:mm:ss     SortableDateTimePattern (conforms to ISO 8601) usinglocal time(使用本地时间的可排序模式)

T   HH:mm   ShortTimePattern (短时间模式)

T   HH:mm:ss    LongTimePattern(长时间模式)

U   yyyy-MM-dd HH:mm:ss UniversalSortable-DateTimePattern (conforms to ISO 8601) usinguniversal time(通用可排序模式)

U   dddd,MMMM dd,yyyy,HH:mm:ss  UniversalSortable-DateTimePattern(通用可排序模式)

y,Y MMMM,yyyy   YearMonthPattern(年月模式)

2.字符串转为枚举型

GridViewDetailExportMode exportMode = = (GridViewDetailExportMode)Enum.Parse(typeof(GridViewDetailExportMode), “Expanded”);

时间: 2024-10-27 00:41:42

AspxGridView使用手记的相关文章

随手记(二)

首先一个随手记app需要一个登陆注册功能,而androidstudio自带的sqllite就起到了很强大的作用. 1.用户登陆界面 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical&quo

[转]灯灯小程序开发手记:仿今日头条(上)

本文转自:http://www.jianshu.com/p/a1e0b8abb12d 写在前面 新的一年,祝大家新年快乐!当然对于程序员来说,新的一年,也要有新的改变.因此灯灯决定凑热闹编写微信小程序啦! 上一篇文章<记一次小程序开发过程>中,灯灯大致写了下自己第一次开发小程序的感受和流程.这一次灯灯会详细记录下自己制作一个小程序的思路.遇到的问题.涉及到的代码等和大家分享.    视频教程地址:http://study.163.com/course/introduction.htm?cour

ASPXGridView使用小结

一.ASPXGridView外观显示 属性: Caption----列的标题( KeyFieldName----数据库字段 SEOFriendly 是否启用搜索引擎优化 Summary 指定分页汇总信息的格式 Setting节点的ShowFilterRow=True设置快速查找功能 SettingsBehavior.AllowFocusedRow=true 高亮选中的行,即选中行变色 SettingsBehavior.AllDragDrop=false禁止拖动标题列头 SettingsBehav

aspxgridview CustomButtonCallback 不支持弹出消息提示解决方法

protected void ASPxGridView1_CustomButtonCallback(object sender, ASPxGridViewCustomButtonCallbackEventArgs e) { ASPxGridView view = sender as ASPxGridView; if (e.ButtonID == "btnAudit") { int id = 0; int.TryParse(view.GetRowValues(e.VisibleIndex

[小北De编程手记] : Lesson 08 - Selenium For C# 之 PageFactory &amp; 团队构建

本文想跟大家分享的是Selenium对PageObject模式的支持和自动化测试团队的构建.<Selenium For C#>系列的文章写到这里已经接近尾声了,如果之前的文章你是一篇篇的读下来并动手实践的话,我相信你应该可以模拟日常工作中80%常见的手动测试用例了.请注意:我的用词是模拟用例,而不是书写自动化测试用例.一个企业级的自动化测试的构建不是单靠Selenium一种技术就能Hold住的.所谓模拟指的是只能实现自动化的某个Case,但是不能工程化的使用.在本人所接触过几家公司的自动化测试

[小北De编程手记] : Lesson 01 - Selenium For C# 之 环境搭建

在我看来一个自动化测试平台的构建,是一种很好的了解开发语言,单元测试框架,自动化测试驱动,设计模式等等等的途径.因此,在下选择了自动化测试的这个话题来和大家分享一下本人关于软件开发和自动化测试的认识.刚刚开通了博客,就从最基础的开始吧,算是写给初学者的编程手记,也算是给对自动化完全不了解的小伙伴开个头.时间允许的话会坚持更新下去... ... 后续的文章计划会谈到一些企业级自动化测试平台的构建(但愿有时间完成哈~~). 关于自动化测试的框架,网上有很多相关的对比,在这里我我就不评论和对比了.本人

DevExpress ASP.NET 使用经验谈(6)-ASPxGridView通过属性配置界面展现

上一节中,我们通过简单的配置,通过ASPxGridView控件的使用,完成了对数据库表的CRUD操作. 这样的界面展现,功能是达到了,但是操作体验上,还是有所欠缺的. 图一 默认生成的列表界面 图二 默认编辑界面 接下来,我们通过以下几步简单的设置,使界面操作更美观,更符合实际需求. 第一步,我们将显示为文字操作的Edit,New,Delete修改为图片,通过属性 ButtonType="Image" 来实现. <dx:GridViewCommandColumn VisibleI

让项目管理理论&ldquo;落地&rdquo;&mdash;&mdash;读《IT项目经理成长手记》有感

最近利用业余时间阅读了一本好书--<IT项目经理成长手记>(潘东.韩秋泉著).本书的两位作者是神州数码(中国本土最大的整合IT服务提供商)的高管,在书中他们介绍了神州数码在IT项目管理领域积累的实践做法和工作思路.本书从IT项目经理面临的真实问题和场景出发,将一个项目管理实践者所亲历的案例整理成"手记",如实地记录下问题解决方法和收获的经验教训. 读完此书,结合科研项目管理的现状,进行了一些思考.在此,将思考后的感想分享. 一.量化指标,使项目状态透明化 书中提出了一个让人

大叔手记(1):使用VisualStudio的查找与替换替代默认的系统搜索(转载)

大叔手记(1):使用VisualStudio的查找与替换替代默认的系统搜索 一直以来,一直使用Visual Studio的查找与替换(Find and Replace)来搜索当前项目或整个解决方案里的代码,从来没怎么注意右边的那个选择文件夹功能. 原来还可以选择非解决方案的文件夹,而且试用了一下,速度明显比默认的系统搜索功能快,尤其是在阅读.NET4.0源码的时候,效果真是高啊. 大叔手记:旨在记录日常工作中的各种小技巧与资料(包括但不限于技术) 原文链接 本文由豆约翰博客备份专家远程一键发布