AspxGridView使用手記
1、 基本使用方法 4
1.導入Dll文件 4
2.Asp.Net頁面控件註冊 4
3. Asp.Net頁面控件聲明 5
4.刪除licenses.licx協議文件(盜版) 5
5.功能概述 5
2、 綁定數據(單層) 5
1.使用DataSource屬性綁定DataTable 5
2.使用DataSourceID屬性綁定SqlDataSource 6
3.使用DataSourceID屬性綁定ObjectDataSource 6
4.使用DataSourceID屬性綁定LinqDataSource 9
5.使用DataSourceID屬性綁定XmlDataSource 10
3、 綁定數據(嵌套樹) 10
1.主從數據綁定 10
4、 客戶端行維護(新增、修改、刪除等) 12
1.編輯狀態 12
2.新增 13
3.修改 13
4.刪除 13
5、 服務器端行維護(新增、修改、刪除等) 13
1.編輯狀態 13
2.新增 13
3.修改 15
4.刪除 16
6、 數據保存 17
7、 客戶端行選擇 17
1.選擇頁面上全部行 17
2.選中指定行或全部行 18
3.獲取選中行 18
4.取消頁面上全部行的選擇 19
5.取消指定行或全部行的選擇 19
8、 服務器端行選擇 19
1.可選擇性設置 19
2.Selection屬性 19
9、 客戶端行定位 20
1.將焦點轉移到編輯行的指定列 20
2.獲取焦點行號 20
3.將某行置爲可見(未驗證) 20
4.跳轉到指定頁 20
10、 服務器端行定位 21
1.焦點行 21
2.將某行置爲可見 21
3.跳轉到指定頁 21
11、 客戶端數據搜索 21
1.數據過濾 21
12、 服務端數據搜索 22
1.數據過濾 22
2.數據搜索 22
十3、 分頁 23
1.分頁條相關屬性 23
2.更改分頁條按鈕屬性 26
3.與分頁相關操做 26
十4、 客戶端排序 26
1.使用SortBy方法排序 26
十5、 服務器端排序 27
1.排序設置 27
2.使用SortBy方法排序 27
3.直接操做GridViewDataColumn排序 28
4.使用GetSortedColumns方法取排序欄位 28
十6、 服務器端數據分組 28
1.數據分組的前提條件 28
2.使用GroupBy方法實現數據分組 28
3.分組的展開與摺疊 29
4.判斷分組行是否展開 29
5.數據分組的相關設置 29
6.按分組值排序 30
十7、 客戶端數據分組 30
1.使用GroupBy方法實現數據分組 30
2.分組的展開與摺疊 30
3.判斷分組行是否展開 31
4.判斷是分組行仍是數據行 31
5.用戶拖動欄位到分組帶實現分組 31
十8、 數據導出 31
1.內置數據導出的前提條件 31
2.支持的數據導出類型 32
3. ASPxGridViewExporter重要屬性 32
4.主從ASPxGridView數據導出 32
5.導出到Pdf時中文亂碼問題的解決 33
十9、 報表打印 33
二10、 懶加載 33
二11、 客戶端欄位取值與賦值 33
1.使用GetPageRowValues取當前頁指定欄位值 33
2.使用GetRowValues取指定行指定欄位值 34
3.使用GetSelectedFieldValues取選中行指定欄位值 34
4.取欄位實例 34
5.使用GetColumnsCount取欄位總數 34
6.使用MoveColumn隱藏和移動欄位 34
7. 使用GetRowKey取行主鍵值 35
二12、 服務器端欄位取值與賦值 35
1.取行值 35
2.取列值 36
二十3、 欄位編輯風格 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
二十4、 欄位格式化 45
二十5、 固定列 45
二十6、 欄位拖動 45
二十7、 欄位合計 46
二十8、 欄位初始值 46
二十9、 欄位可編輯性 46
三10、 欄位數據校驗 46
1.行數據校驗(編輯狀態) 46
三11、 客戶端事件 49
三12、 服務器端事件 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
三十3、 快捷鍵 59
三十4、 樣式 59
1.GridViewStyles重要屬性 59
2. GridViewAlternatingRowStyle重要屬性 59
三十5、 AspxGridView服務器端重要屬性 60
三十6、 AspxGridView服務器端重要方法 60
三十7、 GridViewColumnCollection服務器端重要屬性 61
三十8、 AspxGridView客戶端重要屬性 61
三十9、 AspxGridView客戶端經常使用方法 64
1.PerformCallback 77
四10、 AspxGridView客戶端很是用方法 78
四11、 ASPxClientGridViewColumn(客戶端欄位)經常使用屬性 79
四12、 嵌套AspxGridView的特殊控制 80
1.控制在同一時間只容許一行展開 80
2.SettingsDetail屬性設置 80
3.嵌套AspxGridView樹展開與摺疊(客戶端) 80
四十3、 AspxGridView客戶端源代碼可借鑑點 81
四十4、 AspxGridView服務器端源代碼可借鑑點 81
四十5、 BUG 81
四十6、 附錄 81
1.格式化標識符 81
2.字符串轉爲枚舉型 83
1、 基本使用方法
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)可定製模板,支持卡片視圖、主從表視圖
2、 綁定數據(單層)
能夠經過給AspxGridView的DataSource屬性或DataSourceID賦值來實現數據綁定。
所支持的數據源類型包括:SqlDataSource、ObjectDataSource、XmlDataSource、AccessDataSource、SiteMapDatasource、LinqDataSource
1.使用DataSource屬性綁定DataTable
static string _connectionstring = "Data Source=192.168.1.1 nitial Catalog=SDERP;UID=sa;Password=xxxx」
DataSet currentDs = new DataSet();
using (SqlConnection currentConn = new SqlConnection(_connectionstring))
{
//獲取數據
currentConn.Open();
SqlDataAdapter currentSda = new SqlDataAdapter( "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代碼以下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;
using System.Collections;
namespace AspxGridView
{
public class SysLogDAL
{
static string _connectionstring = "Data Source=192.168.1.252;Initial Catalog=SDERP;UID=sa;Password=XXXXXXXXX" ;
public static ICollection GetAllLog()
{
ArrayList al = new ArrayList();
DataSet currentDs = new DataSet();
using (SqlConnection currentConn = new SqlConnection(_connectionstring))
{
//獲取數據
currentConn.Open();
SqlDataAdapter currentSda = new SqlDataAdapter( "select * from Sys_Log" , currentConn);
currentSda.Fill(currentDs, "Sys_Log" );
DataTable dt = currentDs.Tables[ "Sys_Log" ];
foreach (DataRow dr in dt.Rows)
{
SysLogEntry e = new SysLogEntry();
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();
}
return al;
}
}
}
其中SysLogEntry.cs代碼以下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace AspxGridView
{
public class SysLogEntry
{
public int LogID
{
get ;
set ;
}
public DateTime OCCDatetime
{
get ;
set ;
}
public string Event
{
get ;
set ;
}
public string Type
{
get ;
set ;
}
public string Creator
{
get ;
set ;
}
public DateTime CreateDate
{
get ;
set ;
}
public string Remark
{
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)
public ICollection SysLogEntrys
{
get
{
return this .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>
3、 綁定數據(嵌套樹)
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數據綁定
protected void DetailGrid_BeforePerformDataSelect( object sender, EventArgs e)
{
Session[ "TaskCode" ] = (sender as ASPxGridView).GetMasterRowKeyValue();
}
4、 客戶端行維護(新增、修改、刪除等)
1.編輯狀態
(1)進入編輯狀態
在調用AddNewRow()時或點擊【新增】按鈕自動進入編輯狀態
調用StartEditRow()或點擊【編輯】按鈕進入編輯狀態
(2)取消編輯狀態
點擊【取消】按鈕或【保存按鈕】自動取消編輯狀態
調用CancelEdit()或UpdateEdit()取消編輯狀態
2.新增
新增行方法:AddNewRow()
function AddNewRow();
3.修改
調用StartEditRow()使行進入編輯狀態
function StartEditRow(visibleIndex : int );
4.刪除
調用DeleteRow方法實現數據刪除。
語法:function DeleteRow(visibleIndex : int );
5、 服務器端行維護(新增、修改、刪除等)
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()
//新增數據行
protected void btnServerAddRow_Click( object sender, EventArgs e)
{
string editMode = 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方法實現保存。
例:
protected void btnServerSave_Click( object sender, EventArgs e)
{
this .ASPxGridView1.UpdateEdit(); //保存數據
this .ASPxGridView1.CancelEdit(); //取消編輯狀態
}
3.修改
(1)必要條件:數據源必須支持更新(如SqlDataSource配置了UpdateCommand), 必須有主鍵。
(2)調用StartEdit方法使行進入編輯狀態
能夠調用UpdateEdit方法保存數據,或調用CancelEdit方法取消編輯狀態。
也能夠顯示出內置的【編輯】按鈕讓用戶點擊進入編輯狀態。
例:
int firstSelectedRowIndex =-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;
}
int logID = ( 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( int visibleIndex)
參數visibleIndex表示行號。
RowDeleting事件的聲明原型:
void ASPxGridView1_RowDeleting( object sender, DevExpress.Web.Data.ASPxDataDeletingEventArgs e)
能夠經過修改ASPxDataDeletingEventArgs.Cancel= true 來阻止刪除。
DevExpress.Web.Data.ASPxDataDeletingEventArgs屬性:
Cancel: bool ,是否取消刪除。可讀寫。
Keys:OrderedDictionary,要刪除行的主鍵欄位值。只讀。
Values: OrderedDictionary,要刪除行的非主鍵(其實是全部欄位)欄位值。只讀。
例:
//刪除行前事件
protected void ASPxGridView1_RowDeleting( object sender, DevExpress.Web.Data.ASPxDataDeletingEventArgs e)
{
for ( int i = 0; i < e.Keys.Count; i++)
{
if (Int32.Parse(e.Keys[i].ToString()) > 20000)
{
e.Cancel = true ;
break ;
}
}
}
RowDeleted事件的聲明原型:
void ASPxGridView1_RowDeleted( object sender, DevExpress.Web.Data.ASPxDataDeletedEventArgs e)
能夠在此事件中獲取刪除時出現的異常並按本身的方法處理異常,或記錄成功刪除的行數。
DevExpress.Web.Data.ASPxDataDeletedEventArgs屬性包括:
AffectedRecords: int ,刪除影響到的行數。只讀。
Exception:Exception,刪除數據期間發生的異常。只讀。
ExceptionHandled: bool ,是否已處理異常。可讀寫。
Keys:OrderedDictionary,要刪除行的主鍵欄位值。只讀。
Values: OrderedDictionary,要刪除行的非主鍵(其實是全部欄位)欄位值。只讀。
6、 數據保存
調用UpdateEdit方法保存數據。或調用BeginUpdate()和EndUpdate()保存數據。
7、 客戶端行選擇
1.選擇頁面上全部行
(1)SelectAllRowsOnPage方法
語法1: void SelectAllRowsOnPage()
語法2: void SelectAllRowsOnPage( bool selected)
參數:selected:選擇或取消選擇
2.選中指定行或全部行
(1)SelectRows方法
語法1: void SelectRows() //選擇全部記錄(包括不是當前頁的記錄)
語法2: void SelectRows( int visibleIndex) //選擇指定行(必須設置KeyFieldName)
語法3: void SelectRows(int32[] visibleIndces)
語法4: void SelectRows( int visibleIndex, bool selected)
語法5: void SelectRows(int32[] visibleIndces, bool selected)
例:選中第1-10行
var rows = new Array();
for ( var i = 0; i < 10; i++) {
rows[i] = i;
}
grid.SelectRows(rows);
(2)SelectRowsByKey方法
語法1: void SelectRowsByKey( object key)
語法2: void SelectRowsByKey(Object[] keys)
語法3: void SelectRowsByKey( object key, bool selected);
語法4: void SelectRowsByKey(Object[] keys, bool selected);
3.獲取選中行
(1)取選中行數
語法:Int GetSelectedRowCount()
(2)取選中行欄位值
function GetSelectedFieldValues(fieldNames : String,onCallback : ASPxClientGridViewValuesCallback);
例:
function GetSelectedFieldValues(){
var fieldNames = "LogID" ;
grid.GetSelectedFieldValues(fieldNames, GetSelectedFieldValues_Callback);
}
function GetSelectedFieldValues_Callback(result) {
var msg= "" ;
if (result.length > 0) {
for ( var i = 0; i < result.length; i++) {
msg = msg + result[i].toString();
}
}
alert(msg);
}
4.取消頁面上全部行的選擇
(1)UnselectAllRowsOnPage方法
語法: void UnselectAllRowsOnPage()
5.取消指定行或全部行的選擇
(1)UnselectRowOnPage方法
語法:function UnselectRowOnPage(visibleIndex : int );
(2)UnselectRows方法
語法1: void UnselectRows(); //取消全部行的選擇
語法2: void UnselectRows( int visibleIndex); //取消指定行的選擇
語法3: void UnselectRows(Int32[] visibleIndices); //取消指定範圍內行的選擇
(3) UnselectRowsByKey方法
語法1: void UnselectRowsByKey(Object[] keys);
語法2: void UnselectRowsByKey( object key);
8、 服務器端行選擇
1.可選擇性設置
AspxGridView的SettingsBehavior屬性中能夠設置是否容許多行選。
This.AspxGridView.SettingsBehavior.AllowSelectByRowClick= true //是否支持單擊行選擇(V10.0以上)
This.AspxGridView.SettingsBehavior.AllowMultiSelection= true //是否支持多選
2.Selection屬性
AspxGridView的Selection屬性封裝了與行選擇有關的屬性和方法。它是DevExpress.Web.Data.WebDataSelection類型。
(1) void Selection.SelectAll():選中全部行。不只僅包括當前頁可見的行,還包括非當前頁的行。
(2) void Selection.SelectRow( int visibleIndex):選中指定行。該行必須在當前頁可見才能被選中。
(3) void Selection.SelectRowByKey( object keyValue):按主鍵值選中指定行。該行能夠沒必要在當前頁。要注意主鍵值的數據類型應與主鍵列所定義的數據類型一致。
(4) void Selection.UnselectAll():取消全部行的選擇。不只僅包括當前頁可見的行,還包括非當前頁的行。
(5) void Selection.UnselectRow( int visibleIndex):取消指定行的選擇。該行必須在當前頁可見才能被取消選中。
(6) void Selection.UnselectRowByKey( object keyValue):按主鍵值取消指定行的選擇。該行能夠沒必要在當前頁。要注意主鍵值的數據類型應與主鍵列所定義的數據類型一致。
(7) void Selection.SetSelection( int visibleIndex, bool selected):選中或取消選中指定行。該行必須在當前頁可見才能被選擇或取消選中。
(8) void Selection.SetSelectionByKey( object keyValue, bool selected):根據主鍵值選中或取消選中指定行。該行能夠沒必要在當前頁。
(9) bool Selection.IsRowSelected( int visibleIndex):判斷指定行是否被選中。該行必須在當前頁可見。
(10) bool Selection.IsRowSelectedByKey( object keyValue):判斷指定主鍵值對應行是否被選中。該行能夠不在當前頁。
(11) count屬性( int )返回選中行的行數。
9、 客戶端行定位
1.將焦點轉移到編輯行的指定列
(1)調用SetFocusedRowIndex設置焦點行
function SetFocusedRowIndex(visibleIndex : int );
調用SetFocusedRowIndex方法後將觸發FocusedRowChanged事件
(2)調用FocusEditor方法將焦點轉移到編輯行的指定列
語法1:FocusEditor(ASPxClientGridViewColumn column);
語法2:FocusEditor( int columnIndex);
語法3:FocusEditor( string columnFieldNameOrId);
2.獲取焦點行號
調用GetFocusedRowIndex方法
語法:function GetFocusedRowIndex() : int ;
3.將某行置爲可見(未驗證)
調用SetClientVisible方法。
4.跳轉到指定頁
(1)調用GotoPage方法跳轉到指定行。
function GotoPage(pageIndex : int );
(2)調用PrevPage方法跳轉到前一頁。
function PrevPage();
(3)調用NextPage方法跳轉到下一頁。
function NextPage();
10、 服務器端行定位
1.焦點行
AspxGridView的焦點行(當前行)與選擇行是有區別的
(1) 獲取或設置焦點行能夠訪問其FocusedRowIndex屬性。
(2) 能夠經過SettingsBehavior.AllowFocusedRow讀取或設置是否容許定位焦點行。
(3) 能夠調用AspxGridView的MakeRowVisible方法使指定主鍵值的行所在頁可見,從而當即看到選中或跳轉的效果。
例:
int keyValue = ( 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修改成指定頁號則可跳轉到指定頁。
11、 客戶端數據搜索
1.數據過濾
(1)調用AutoFilterByColumn()方法實現過濾。
語法1: void AutoFilterByColumn(ASPxClientGridViewColumn column, string val);
語法2: void AutoFilterByColumn( int columnIndex, string val);
語法3: void AutoFilterByColumn( string columnFieldNameOrId, string val);
不會自動清除以前的過濾條件。
(2)調用ApplyFilter實現過濾。
語法:function ApplyFilter(filterExpression : String);
語法:
var filterExpr = document.getElementById( "<%=txtFilterExpression.ClientID%>" ).value;
grid.ApplyFilter(filterExpr);
會自動清除以前的過濾條件。
(3)調用ClearFilter清除過濾條件
語法:function ClearFilter();
12、 服務端數據搜索
1.數據過濾
(1)調用AutoFilterByColumn()方法能夠實現服務端數據過濾。
AutoFilterByColumn語法: void AutoFilterByColumn(GridViewColumn column, string value)
參數說明:
column:要過濾的欄位
value:要過濾的欄位值。可使用通配符。
例:數據過濾
protected void btnServerFilter_Click( object sender, EventArgs e)
{
string filterColumnName = this .ddlFilterColumNames.SelectedValue;
if (filterColumnName != null )
{
GridViewColumn col = this .ASPxGridView1.Columns[filterColumnName] as GridViewColumn;
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
語法: int FindVisibleIndexByKeyValue( object keyValue)
例:
//搜索
protected void btnFindKeyValue_Click( object sender, EventArgs e)
{
string keyValue = this .txtFindKeyValue.Text;
int logID;
if (keyValue.Length > 0 && Int32.TryParse(keyValue, out logID))
{
int rowIndex = this .ASPxGridView1.FindVisibleIndexByKeyValue(logID);
if (rowIndex >= 0)
{
this .ASPxGridView1.Selection.UnselectAll(); //取消全部行的選擇
this .ASPxGridView1.Selection.SelectRow(rowIndex); //選中指定行
this .ASPxGridView1.FocusedRowIndex = rowIndex;
this .ASPxGridView1.MakeRowVisible(logID);
}
}
}
十3、 分頁
AspxGridView默認支持分頁,默認每頁行數(PageSize)是10。若是不想分頁,能夠設置SettingsPager的Mode=」 ShowAllRecords」。能夠經過訪問SettingsPager讀取或更改相關分頁屬性。
1.分頁條相關屬性
屬性名 數據類型 英文說明 中文說明
AlwaysShowPager bool Gets or sets whether the Pager is displayed within the ASPxGridView when there is only on page. 是否老是顯示分頁條(即在一頁時是否也顯示分頁條)。可讀寫
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) is drawn 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 is enabled. 獲取或設置是否分頁。可讀寫。取值範圍: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 on a
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 is enabled. 獲取或設置搜索優化模式。可讀寫。取值範圍:Enabled,啓用;Disabled,不啓用;CrawlerOnly,自動檢測。
ShowDefaultImages bool Gets or sets whether default button 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 is visible. 獲取或設置分頁條是否可見。可讀寫。
其中如下屬性一般會被訪問或重置。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)中從新綁定數據,不然翻頁後無數據。
void ASPxGridView1_PageIndexChanged( object sender, EventArgs e)
十4、 客戶端排序
1.使用SortBy方法排序
語法1: void SortBy(ASPxClientGridViewColumn column);
語法2: void SortBy( int columnIndex);
語法3: void SortBy( string columnFieldNameOrId);
語法4: void SortBy( string columnFieldNameOrId, string sortOrder);
語法5: void SortBy(ASPxClientGridViewColumn column, string sortOrder);
語法6: void SortBy( int columnIndex, string sortOrder);
語法7: void SortBy( int columnIndex, string sortOrder, bool reset);
語法8: void SortBy(ASPxClientGridViewColumn column, string sortOrder, bool reset);
語法9: void SortBy( string columnFieldNameOrId, string sortOrder, bool reset);
語法10: void SortBy(ASPxClientGridViewColumn column, string sortOrder, bool reset, int sortIndex);
語法11: void SortBy( int columnIndex, string sortOrder, bool reset, int sortIndex);
語法12: void SortBy( string columnFieldNameOrId, string sortOrder, bool reset, int sortIndex);
其中參數:
sortOrder:可取Ascending、Descending。
Reset:是否清除之前的排序規則。
(2)點擊欄位題頭排序。
按住Shift鍵能夠指定多個欄位排序。
十5、 服務器端排序
1.排序設置
必須設置AspxGridView容許排序纔可執行真正的排序(SettingsBehavior.AllowSort= true ),該選項默認爲 true 。
2.使用SortBy方法排序
語法1. int SortBy(GridViewColumn column, int value)
語法2.ColumnSortOrder SortBy(GridViewColumn column,ColumnSortOrder value)
調用SortBy方法不會自動清除之前的排序欄位,若是不清除以前的排序欄位,則當前欄位會追加到排序欄位列表中。
能夠經過如下方法清除之前的排序欄位。
(1) 調用ClearSort方法來清除之前的排序欄位
(2) 遍歷欄位的SortIndex屬性來肯定是否參與過排序及排序的次序(SortIndex=-1表示不排序,另外欄位的SortOrder可獲取或設置排序方式)。GridViewColumn. SortIndex=-1。
(3) 調用GridViewColumn.UnSort()方法
例:
protected void btnServerSort_Click( object sender, EventArgs e)
{
string sortColumn = this .ddlSortColumn.SelectedValue;
string sortType = 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] as GridViewDataColumn;
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 = new StringBuilder();
for ( int i = 0; i < sortedColumnList.Count; i++)
{
msg.Append(sortedColumnList[i].FieldName);
}
string js = "alert('" + msg.ToString()+ "')" ;
ScriptManager.RegisterClientScriptBlock( this , this .GetType(), "GetSortedColumns" , js, true ); //在客戶端執行腳本
十6、 服務器端數據分組
1.數據分組的前提條件
必須設置ASPxGridViewBehaviorSettings.AllowGroup= true 和ASPxGridViewBehaviorSettings.AllowSort= true 。
2.使用GroupBy方法實現數據分組
語法1: int GroupBy(GridViewColumn column);
語法2: int GroupBy(GridViewColumn column, int value);
其中參數value表示分組的層次,-1表示取消該欄位的分組。
調用GroupBy方法不會自動清除之前的分組規則,能夠調用ClearSort方法或UnGroup方法清除。
例:用一個欄位分組
this .ASPxGridView1.ClearSort(); //清空分組
string columnName = 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展開全部分組。
語法: void ExpandAll();
(2)使用ExpandRow展開指定分組行。
語法1: void ExpandRow( int visibleIndex);
語法2: void ExpandRow( int visibleIndex, bool recursive);
參數recursive:是否遞歸。
(3)使用CollapseAll摺疊全部分組。
語法: void CollapseAll();
(4)使用CollapseRow摺疊指定分組行。
語法1: void CollapseRow( int visibleIndex);
語法2: void CollapseRow( int visibleIndex, bool recursive);
4.判斷分組行是否展開
使用IsRowExpanded方法。
語法: bool IsRowExpanded( int visibleIndex);
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( new ASPxGroupSummarySortInfo( "OCCDatetime" , this .ASPxGridView1.GroupSummary[ "OCCDatetime" ], ColumnSortOrder.Ascending));
十7、 客戶端數據分組
1.使用GroupBy方法實現數據分組
語法1: void GroupBy( int columnIndex);
語法2: void GroupBy(ASPxClientGridViewColumn column);
語法3: void GroupBy( string columnFieldNameOrId);
語法4: void GroupBy( string columnFieldNameOrId, int groupIndex);
語法5: void GroupBy( int columnIndex, int groupIndex);
語法6: void GroupBy(ASPxClientGridViewColumn column, int groupIndex);
語法7: void GroupBy( int columnIndex, int groupIndex, string sortOrder);
語法8: void GroupBy(ASPxClientGridViewColumn column, int groupIndex, string sortOrder);
語法9: void GroupBy( string columnFieldNameOrId, int groupIndex, string sortOrder);
2.分組的展開與摺疊
(1)使用ExpandAll展開全部分組。
語法: void ExpandAll();
(2)使用ExpandRow展開指定分組行。
語法1: void ExpandRow( int visibleIndex);
語法2: void ExpandRow( int visibleIndex, bool recursive);
參數recursive:是否遞歸。
(3)使用CollapseAll摺疊全部分組。
語法: void CollapseAll();
(4)使用CollapseRow摺疊指定分組行。
語法1: void CollapseRow( int visibleIndex);
語法2: void CollapseRow( int visibleIndex, bool recursive);
3.判斷分組行是否展開
使用IsGroupRowExpanded方法。
語法: bool IsGroupRowExpanded( int visibleIndex);
4.判斷是分組行仍是數據行
(1)判斷是否分組行
function IsGroupRow(visibleIndex : int ) : bool ;
(2)判斷是否數據行
function IsDataRow(visibleIndex : int ) : bool ;
5.用戶拖動欄位到分組帶實現分組
首先須要顯示分組帶:<Settings ShowGroupPanel= "True" />
使用鼠標將欄位拖動到分組帶便可實現即時分組。將分組欄位拖回題頭則取消分組。
十8、 數據導出
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 is exported. 導出文件名稱。可讀寫。
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來處理中文亂碼問題。有中文符號的字體能夠正確顯示中文。
十9、 報表打印
二10、 懶加載
二11、 客戶端欄位取值與賦值
1.使用GetPageRowValues取當前頁指定欄位值
語法;function GetPageRowValues(fieldNames : String,onCallback : ASPxClientGridViewValuesCallback);
例:
function GetPageRowValues() {
var fieldNames = document.getElementById( "txtFieldName_GetPageRowValues" ).value;
grid.GetPageRowValues(fieldNames, GetPageRowValues_Callback);
}
function GetPageRowValues_Callback(result) {
var msg = "" ;
if (result.length > 0) {
for ( var i = 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: void MoveColumn(ASPxClientGridViewColumn column);
語法2: void MoveColumn( int columnIndex);
語法3: void MoveColumn( string columnFieldNameOrId);
(2)移動列
語法4: void MoveColumn(ASPxClientGridViewColumn column, int moveToColumnVisibleIndex);
語法5: void MoveColumn( int columnIndex, int moveToColumnVisibleIndex);
語法6: void MoveColumn( string columnFieldNameOrId, int moveToColumnVisibleIndex);
語法7: void MoveColumn( string columnFieldNameOrId, int moveToColumnVisibleIndex, bool
moveBefore);
語法8: void MoveColumn( int columnIndex, int moveToColumnVisibleIndex, bool moveBefore);
語法9: void MoveColumn(ASPxClientGridViewColumn column, int moveToColumnVisibleIndex, bool
moveBefore);
語法10: void MoveColumn( string columnFieldNameOrId, int moveToColumnVisibleIndex, bool
moveBefore, bool moveToGroup);
語法11: void MoveColumn( int columnIndex, int moveToColumnVisibleIndex, bool moveBefore,
bool moveToGroup);
語法12: void MoveColumn(ASPxClientGridViewColumn column, int moveToColumnVisibleIndex, bool
moveBefore, bool moveToGroup);
語法13: void MoveColumn(ASPxClientGridViewColumn column, int moveToColumnVisibleIndex, bool
moveBefore, bool moveToGroup, bool moveFromGroup);
語法14: void MoveColumn( string columnFieldNameOrId, int moveToColumnVisibleIndex, bool
moveBefore, bool moveToGroup, bool moveFromGroup);
語法15: void MoveColumn( int columnIndex, int moveToColumnVisibleIndex, bool moveBefore,
bool moveToGroup, bool moveFromGroup);
7. 使用GetRowKey取行主鍵值
語法: string function GetRowKey(visibleIndex : int )
二12、 服務器端欄位取值與賦值
1.取行值
(1) 使用GetDataRow方法取指定行數據
語法:DataRow GetDataRow( int visibleIndex)
visibleIndex:行號。能夠是不在當前頁上的行。只有經過DataSourceID綁定數據纔可獲取到數據,若是經過DataSource綁定數據是獲取不到值的。
例:
string srowIndex = this .txtGetDataRowIndex.Text;
int rowIndex;
if (Int32.TryParse(srowIndex, out rowIndex))
{
DataRow dr = this .ASPxGridView1.GetDataRow(rowIndex); //取指定行數據
if (dr != null )
{
string msg = "LogID=" + dr[ "LogID" ].ToString() + ";Event=" + dr[ "Event" ].ToString();
Response.Write(msg);
}
}
(2) 使用GetRow方法取指定行數據
語法: object GetRow( int visibleIndex)
visibleIndex:行號。能夠是不在當前頁上的行。
該函數返回的是 object 類型,實際類型一般是DataRowView。
2.取列值
(1) 使用GetRowValues方法獲取指定欄位值
語法: object GetRowValues( int visibleIndex,parms string fieldnames[])
若是fieldNames只指定一個欄位,GetRowValues將返回 object 類型,程序員應轉換爲正確的數據類型。若是fieldNames指定了多個欄位,GetRowValues將返回 object []類型,能夠經過 is 判斷返回值。
例:
string srowIndex = this .txtGetDataRowIndex.Text;
int rowIndex;
string [] fieldName;
string tempFieldName;
object tempColumnValues;
object [] columnValues;
StringBuilder msg = new StringBuilder();
int count=0;
tempFieldName = this .txtGetValueColumnNames.Text;
fieldName = tempFieldName.Split( ',' ); //分解字符串到數組
if (Int32.TryParse(srowIndex, out rowIndex))
{
tempColumnValues = this .ASPxGridView1.GetRowValues(rowIndex, fieldName); //取值
if (tempColumnValues is System.Object[]) //返回數組
{
columnValues = (System.Object[])tempColumnValues;
count = Math.Min(fieldName.Length, columnValues.Length);
for ( int i = 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方法獲取指定欄位值
語法: object GetRowValuesByKeyValue( object keyValue,parms string fieldnames[])
GetRowValuesByKeyValue方法與GetRowValues方法相似,只是前者一般主鍵值找到對應行再獲取欄位值而已。
(3) 使用GetSelectedFieldValues方法獲取選中行指定欄位值
語法:List< object >GetSelectedFieldValues(parms string fieldnames[])
若是fieldNames只指定一個欄位,GetSelectedFieldValues將返回 object 列表(各欄位值數組),程序員應轉換爲正確的數據類型。若是fieldNames指定了多個欄位,GetSelectedFieldValues將返回 object []列表(逐行指定欄位值數組),能夠經過 is 判斷返回值。
例:
string tempFieldName = this .txtGetValueColumnNames.Text;
string [] fieldName = tempFieldName.Split( ',' ); //分解字符串到數組
StringBuilder msg = new StringBuilder();
List< object > tempFieldValues = this .ASPxGridView1.GetSelectedFieldValues(fieldName); //取選中行欄位值
//GetSelectedFieldValues返回值先行後列(相似二維數組)
//行列值行列值行列M值
//行N列值行N列值行N列M值
for ( int i = 0; i < tempFieldValues.Count; i++)
{
if (tempFieldValues[i] is System.Object[]) //返回數組
{
object [] fieldValues = ( object [])tempFieldValues[i];
for ( int j = 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 string fieldnames[])
用法相似GetSelectedFieldValues。
二十3、 欄位編輯風格
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 for displaying 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 group footer cells within a column. 頁腳欄位分組帶樣式。只讀。
HeaderCaptionTemplate ITemplate Gets or sets a template for displaying 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 is displayed within the
Customization Window when the column is hidden. 欄位題頭(欄位隱藏時)是否顯示在自定義窗口中。可讀寫。
ToolTip String Gets or sets the column header's tooltip text. 微幫助。可讀寫。
Visible Bool Gets or sets a value that specifies whether the column is visible. 是否顯示。可讀寫。
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 public properties from the specified object to the current one. 從指定對象中複製公共屬性到當前欄位。
IsClickable bool IsClickable() Indicates whether the column responds to mouse clicks. 判斷欄位是否能夠響應鼠標單擊事件。當欄位有題頭或AspxGridView容許排序(SettingsBehavior.AllowSort)或容許欄位拖動(SettingsBehavior.AllowDragDrop)時返回 true ,不然返回 false .
SetColVisible void SetColVisible( bool value) 設置欄位是否可見。等同於Visible屬性。
SetColVisibleIndex Void SetColVisibleIndex( int value) 設置欄位顯示順序。等同於VisibleIndex屬性。
AutoFilterBy Void AutoFilterBy( string value) 根據指定欄位值自動過濾
(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 for displaying 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 is displayed within the Edit Form and
corresponds to the current data column. 在編輯窗口中欄位的設置
EditItemTemplate ITemplate Gets or sets a template for displaying 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 int Gets 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 public properties from the specified object to the current one. 從指定對象中複製公共屬性到當前欄位。
AutoFilterBy Void AutoFilterBy( string value) Applies a filter to the column. 根據指定欄位值自動過濾
GroupBy void GroupBy() Groups data by the values of the current column. 按當前欄位分組。能夠調用UnGroup方法打散分組。
SortAscending void SortAscending() Sorts the column in ascending order. 按當前欄位值正序排序
SortDescending Void SortDescending() Sorts the column in descending order. 按當前欄位值倒序排序
UnGroup void UnGroup() Ungroups data by the 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服務器端重要屬性
屬性名 數據類型 英文說明 中文說明
二十4、 欄位格式化
二十5、 固定列
AspxGridView的固定列是經過設置欄位的FixedStyle=」Left」來實現的。
Asp.net中設置:FixedStyle=」Left」
C#中設置:FixedStyle = GridViewColumnFixedStyle.Left
二十6、 欄位拖動
設置SettingsBehavior.AllowDragDrop= true 則容許欄位拖動。
調用客戶端方法MoveColumn可在前臺實現代碼拖動。支持用戶使用鼠標拖動欄位。
二十7、 欄位合計
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。
二十8、 欄位初始值
AspxGridView要設置欄位新增時初始值須要擴充其InitNewRow事件。代碼的主要功能是給e.NewValues[欄位名稱]賦值。
事件原型:
protected void ASPxGridView1_InitNewRow( object sender, DevExpress.Web.Data.ASPxDataInitNewRowEventArgs e)
DevExpress.Web.Data.ASPxDataInitNewRowEventArgs屬性:
NewValues:System.Collections.Specialized.OrderedDictionary類型
例:
//設置欄位初始值
protected void ASPxGridView1_InitNewRow( object sender, DevExpress.Web.Data.ASPxDataInitNewRowEventArgs e)
{
e.NewValues[ "CreateDate" ] = DateTime.Now;
}
二十9、 欄位可編輯性
三10、 欄位數據校驗
1.行數據校驗(編輯狀態)
調用DoRowValidation()能夠進行行數據校驗。它其實是觸發RowValidating事件編寫代碼實現數據校驗的。DoRowValidation方法對瀏覽狀態的行無效,能夠經過獲取AspxGridView的IsEditing屬性判斷是否進入編輯狀態。
RowValidating事件原型:
void ASPxGridView1_RowValidating( object sender, DevExpress.Web.Data.ASPxDataValidationEventArgs e)
DevExpress.Web.Data.ASPxDataValidationEventArgs構造函數:
public ASPxDataValidationEventArgs( bool isNew);
DevExpress.Web.Data.ASPxDataValidationEventArgs屬性:
Errors: Dictionary<GridViewColumn, string >,行錯誤集合,只讀。
HasErrors: bool ,待處理的行是否有錯。只讀。
IsNewRow: bool ,待處理的行是否新增行。只讀。
Keys:OrderedDictionary,要刪除行的主鍵欄位值。只讀。
NewValues: OrderedDictionary,要刪除行的非主鍵(其實是全部欄位)欄位新值。只讀。
OldValues: OrderedDictionary,要刪除行的非主鍵(其實是全部欄位)欄位原值。只讀。
RowError: string ,行錯誤信息。可讀寫。
一般在RowValidating事件中檢查欄位值是否有效,若是無效,應拋出異常。
例:
//行數據檢驗事件
protected void ASPxGridView1_RowValidating( object sender, DevExpress.Web.Data.ASPxDataValidationEventArgs e)
{
//是否新增行
if (e.IsNewRow)
{
if (e.NewValues[ "Event" ] == null )
{
e.Errors.Add( this .ASPxGridView1.Columns[ "Event" ], "事件名稱不可爲空" );
e.RowError = "事件名稱不可爲空" ;
throw new Exception( "事件名稱不可爲空" );
}
}
}
一般在HtmlRowPrepared事件中檢查行是否有效並以不一樣的顏色來顯示未經過校驗的行。
一般在StartRowEditing事件中調用DoRowValidation方法觸發數據校驗。
如下是官方的示例代碼:
using DevExpress.Web.ASPxGridView;
using System.Collections.Generic;
protected void grid_RowValidating( object sender,
DevExpress.Web.Data.ASPxDataValidationEventArgs e) {
// Checks for null values.
foreach (GridViewColumn column in grid.Columns) {
GridViewDataColumn dataColumn = column as GridViewDataColumn;
if (dataColumn == null ) continue ;
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." ;
}
void AddError(Dictionary<GridViewColumn, string > errors,
GridViewColumn column, string errorText) {
if (errors.ContainsKey(column)) return ;
errors[column] = errorText;
}
protected void grid_HtmlRowPrepared( object sender,
ASPxGridViewTableRowEventArgs e) {
// Checks whether the generated row has the errors.
bool hasError = 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;
}
protected void grid_StartRowEditing( object sender,
DevExpress.Web.Data.ASPxStartRowEditingEventArgs e) {
// Validates the edited row if it isn't a new row,.
if (!grid.IsNewRowEditing)
grid.DoRowValidation();
}
三11、 客戶端事件
三12、 服務器端事件
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 is loaded, but prior to rendering. 發生在ASPxGridView已裝載但未呈現時獲取回調結果。
2.AutoFilterCellEditorCreate
(1)語法: public delegate void ASPxGridViewEditorCreateEventHandler( object sender,
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)語法: public delegate void ASPxGridViewEditorEventHandler( object sender,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)語法: public delegate void EventHandler( object sender, EventArgs e);
(2)英文說明:Occurs after a callback, when the ASPxGridView is loaded, but prior to rendering.
(3)觸發條件:調用AspxGridView客戶端方法GetValuesOnCustomCallback。
(4)中文說明:發生在ASPxGridView已裝載但未呈現時獲取回調結果。
5.BeforePerformDataSelect
(1)語法: public delegate void EventHandler( object sender, EventArgs e);
(2)英文說明:Occurs before the ASPxGridView control obtains data from a data source.
(3)觸發條件:綁定數據時。
(4)中文說明:發生在ASPxGridView從數據源中獲取數據以前。
一般在主從模式下用於給明細AspxGridView的數據檢索參數賦值。
例:
Session[ "TaskCode" ] = (sender as ASPxGridView).GetMasterRowKeyValue();
//Session["TaskCode"]爲明細AspxGridView的數據源參數
6.CancelRowEditing
(1)語法: public delegate void ASPxStartRowEditingEventHandler( object sender,
ASPxStartRowEditingEventArgs e);
ASPxStartRowEditingEventArgs類包括如下屬性:
Cancel: bool 類型。可讀寫。
(2)英文說明:Enables you to prevent changes made within a row from being discarded.
(3)觸發條件:用戶點擊內置的【取消】按鈕或調用CancelEdit()方法時。
(4)中文說明:取消行編輯狀態前事件。
能夠在該事件中阻止用戶將編輯狀態轉換爲瀏覽狀態。(設置e.Cancel= true )例如彈出對話框提醒用戶是否確實須要取消編輯狀態或清除在編輯過程當中緩存的數據。
7. CellEditorInitialize
(1)語法: public delegate void ASPxGridViewEditorEventHandler( object sender,
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)語法: public delegate void ASPxClientLayoutHandler( object sender,
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)語法: public delegate void ASPxGridViewCustomButtonCallbackEventHandler( object sender,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>
一般在該事件中捕獲按鈕名稱調用對應方法做出實際的迴應。
例:
string id = e.ButtonID;
switch (id)
{
case "btnSelect" :
this .ASPxGridView1.Selection.SelectRow(e.VisibleIndex);
break ;
default :
break ;
}
9. CustomCallback
(1)語法: public delegate void ASPxGridViewCustomCallbackEventHandler( object sender, ASPxGridViewCustomCallbackEventArgs e);
ASPxGridViewCustomCallbackEventArgs類包括如下屬性:
Parameters: string 類型,只讀。全部自定義參數值。
(2)英文說明:Fires when a round trip to the server has been initiated by a call to the client ASPxClientGridView.PerformCallback method.
(3)觸發條件:調用客戶端PerformCallback方法時觸發。
(4)中文說明:該事件不能只在頁面IsPostBack= false 的狀況下聲明,不然沒法觸發。事件參數ASPxGridViewCustomCallbackEventArgs. Parameters由程序員負責解釋。
例:
//自定義回調事件
protected void ASPxGridView1_CustomCallback( object sender, ASPxGridViewCustomCallbackEventArgs e)
{
if (e.Parameters.Length > 0)
{
int visibleIndex = 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], out visibleIndex))
{
this .ASPxGridView1.StartEdit(visibleIndex);
}
}
break ;
default :
break ;
}
}
}
}
前臺代碼示例:
Grid.PerformCallback( 'AddNewRow' )
Grid.PerformCallback( 'StartEdit|2' )
10. CustomColumnDisplayText
(1)語法: public delegate void ASPxGridViewColumnDisplayTextEventHandler( object sender, ASPxGridViewColumnDisplayTextEventArgs e);
ASPxGridViewColumnDisplayTextEventArgs類包括如下屬性:
Column:GridViewDataColumn類型,只讀。欄位實例。
DisplayText: string 類型。可讀寫。顯示文本。
Value: object 類型。可讀寫。欄位值。
VisibleRowIndex: int 類型。只讀。行號。
ASPxGridViewColumnDisplayTextEventArgs類包括如下方法:
object GetFieldValue( string fieldName):獲取欄位值。
object GetFieldValue( int visibleRowIndex, string fieldName) :獲取欄位值。
(2)英文說明:Enables custom display text to be provided for any cell.
(3)觸發條件:發生在欄位綁定或取消綁定時。
(4)中文說明:容許你自定義每一個單元格的顯示文本。好比在數據導出時將欄位值爲0改成空值。
11. CustomColumnGroup
(1)語法: public delegate void ASPxGridViewCustomColumnSortEventHandler( object sender, 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類包括如下方法:
object GetRow1Value( string fieldName):獲取來源行1的值。
object GetRow2Value( string fieldName):獲取來源行2的值。
(2)英文說明:Provides the ability to group data using custom 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)語法: public delegate void ASPxGridViewCustomColumnSortEventHandler( object sender, 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類包括如下方法:
object GetRow1Value( string fieldName):獲取來源行1的值。
object GetRow2Value( string fieldName):獲取來源行2的值。
(2)英文說明:Enables you to sort data using custom 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;
}
else if (e.Value1.ToString().Length == e.Value2.ToString().Length)
{
e.Result = 0;
}
else if (e.Value1.ToString().Length > e.Value2.ToString().Length)
{
e.Result = -1;
}
}
else if (e.SortOrder == DevExpress.Data.ColumnSortOrder.Descending)
{
//按欄位長度倒序
if (e.Value1.ToString().Length < e.Value2.ToString().Length)
{
e.Result = -1;
}
else if (e.Value1.ToString().Length == e.Value2.ToString().Length)
{
e.Result = 0;
}
else if (e.Value1.ToString().Length > e.Value2.ToString().Length)
{
e.Result = 1;
}
}
e.Handled = true ;
}
13. CustomDataCallback
(1)語法: public delegate void ASPxGridViewCustomDataCallbackEventHandler( object sender, ASPxGridViewCustomDataCallbackEventArgs e);
ASPxGridViewCustomDataCallbackEventArgs類包括如下屬性:
Parameters: string 類型,只讀。自定義參數。
Result: object 類型。可讀寫。自定義處理結果。
(2)英文說明:Fires when a round trip to the server has been initiated by a 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)語法: public delegate void ASPxGridViewCustomErrorTextEventHandler( object sender, 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)語法: public delegate void ASPxGridViewColumnDisplayTextEventHandler ( object sender, ASPxGridViewColumnDisplayTextEventArgs e);
ASPxGridViewColumnDisplayTextEventArgs類包括如下屬性:
Column:GridViewDataColumn類型,只讀。欄位實例。
DisplayText: string 類型。可讀寫。顯示文本。
Value: object 類型。可讀寫。欄位值。
VisibleRowIndex: int 類型。只讀。行號。
ASPxGridViewColumnDisplayTextEventArgs類包括如下方法:
object GetFieldValue( string fieldName):獲取欄位值。
object GetFieldValue( int visibleRowIndex, string fieldName) :獲取欄位值。
(2)英文說明:Enables you to provide custom content for group rows.
(3)觸發條件:顯示分組數據時觸發。
(4)中文說明:容許你自定義分組行內容。
16. CustomJSProperties
(1)語法: public delegate void ASPxGridViewClientJSPropertiesEventHandler ( object sender, ASPxGridViewClientJSPropertiesEventArgs e);
ASPxGridViewClientJSPropertiesEventArgs類包括如下屬性:
Properties:Dictionary< string , object >類型,只讀。Js屬性。
(2)英文說明:Enables you to supply any server data that can then be parsed on the client.
(3)觸發條件:發生在AspxGridView呈現時。
(4)中文說明:容許你自定義客戶端屬性。要求屬性名必須以「cp」做爲前綴。你能夠在此事件中自行解釋JS屬性。
例:C#代碼
//自定義js屬性
protected void ASPxGridView1_CustomJSProperties( object sender, ASPxGridViewClientJSPropertiesEventArgs e)
{
e.Properties[ "cpVisibleRowCount" ] = this .ASPxGridView1.VisibleRowCount;
}
例:客戶端代碼
alert(grid.cpVisibleRowCount);
17. CustomSummaryCalculate
(1)語法: public delegate void CustomSummaryEventHandler ( object sender, 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屬性
protected void ASPxGridView1_CustomJSProperties( object sender, ASPxGridViewClientJSPropertiesEventArgs e)
{
e.Properties[ "cpVisibleRowCount" ] = this .ASPxGridView1.VisibleRowCount;
}
例:客戶端代碼
alert(grid.cpVisibleRowCount);
三十3、 快捷鍵
三十4、 樣式
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
三十5、 AspxGridView服務器端重要屬性
屬性名 數據類型 英文說明 中文說明
DataSource Object Gets or sets the object from which 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 from which the data-bound control retrieves its list of data items. 數據源ID.
三十6、 AspxGridView服務器端重要方法
方法名 參數 英文說明 中文說明
Void AddNewRow() 無 Adds a new record. 新增行
Void AutoFilterByColumn(GridViewColumn collmn, string value) 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( int visibleIndex) visibleIndex:行號 Deletes the specified row. 刪除指定行。
Void DoRowValidation() 無 Validates the row currently being edited. 行數據校驗。
String SaveClientLayout() 無 Saves the ASPxGridView's layout. 保存佈局。
Void LoadClientLayout( string layoutData) layoutData:佈局數據 Restores the ASPxGridView's layout from the specified string . 還原佈局。
三十7、 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. 父容器
三十8、 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
三十9、 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 is bound 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 is a group row. 判斷指定行是否分組行。與IsGroupRow方法功能相同。
Bool _isRowSelected(visibleIndex: int ) 判斷指定行是否被選中。
Void _selectAllRowsOnPage( checked : bool ) Selects all unselected rows displayed on the 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方法功能相同。
void AddNewRow() Adds a new record. 新增行
Void ApplyFilter(filterExpression : String) Applies the specified filter expression to the ASPxGridView. 應用過濾表達式。與設置AspxGridView的FilterExpression等效。
1: void AutoFilterByColumn(column: ASPxClientGridViewColumn, val: string );
2: void AutoFilterByColumn(columnIndex: int , var : string );
3: void AutoFilterByColumn(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 group rows. 收縮全部分組數據行
Void CollapseAllDetailRows() Collapses all detail rows. 收縮全部明細數據行
Void CollapseDetailRow(visibleIndex : int ) Collapses the specified detail row. 收貨指定明細數據行
1. void CollapseRow( int visibleIndex)
2. void CollapseRow( int visibleIndex, bool recursive); Collapses the specified group row and optionally child group
rows at all nesting levels. 收縮指定分組數據行.(容許遞歸)
Void DeleteRow(visibleIndex : int ) Deletes the specified row. 刪除指定行。
Void ExpandAll() Expands all group rows. 展開全部分組數據行。
Void ExpandAllDetailRows() Expands all detail rows. 展開全部明細數據行。
Void ExpandDetailRow(
visibleIndex : int ) Expands the specified detail row. 展開指定明細數據行。
1. void ExpandRow( int visibleIndex)
2. void ExpandRow( int visibleIndex, bool recursive); Expands the specified group row preserving the collapsed state of any child group row. 展開指定分組數據行。能夠遞歸。
1. void FocusEditor(ASPxClientGridViewColumn
column)
2. void FocusEditor( int columnIndex)
3. void FocusEditor( string columnFieldNameOrId) Moves focus to the specified edit cell within the edited row. 將光標移動到指定欄位編輯器中。能夠傳遞3種參數。
Bool GetCientVisible() Returns a value specifying whether a control is displayed. 判斷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 is bound 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. void GetEditor( string columnFieldNameOrId);
2. void GetEditor(ASPxClientGridViewColumn column);
3. void GetEditor( int columnIndex); Returns the editor used to edit the specified column's values. 取欄位編輯器。參數能夠是欄位名稱、欄位對象、欄位序號。
1. string GetEditValue( int columnIndex);
2. string GetEditValue(ASPxClientGridViewColumn column);
3. string GetEditValue( string columnFieldNameOrId); 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 event passing 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: void GroupBy( int columnIndex);
2: void GroupBy(ASPxClientGridViewColumn column);
3: void GroupBy( string columnFieldNameOrId);
4: void GroupBy( string columnFieldNameOrId, int groupIndex);
5: void GroupBy( int columnIndex, int groupIndex);
6: void GroupBy(ASPxClientGridViewColumn column, int groupIndex);
7: void GroupBy( int columnIndex, int groupIndex, string sortOrder);
8: void GroupBy(ASPxClientGridViewColumn column, int groupIndex, string sortOrder);
9: void GroupBy( string columnFieldNameOrId, int groupIndex, string sortOrder); Groups data by the 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 by a web
control is being currently processed on the server side. 判斷AspxGridView是否處於服務器回調過程當中。
InitailizeFocus()
Initialize()
InitializeCallBackData()
InlineInitialize()
Bool IsCustomizationWindowVisible() Indicates whether the Customization Window is displayed. 判斷自定義Form是否可見。
Bool IsDataRow(visibleIndex: int ) Indicates whether the specified row is a data row. 判斷指定行是否數據行。
IsDisplayed()
IsElementBelongsToGrid(elementId)
IsGroupHeader(id)
Bool IsGroupRow(visibleIndex: int ) Indicates whether the specified row is a group row. 判斷指定行是否分組行。
Bool IsGroupRowExpanded(visibleIndex: int ) Indicates whether the specified group row is expanded. 判斷指定分組行是否已展開。
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 on the current page. 選中或取消選中當前頁中全部行。
SelectRow(visibleIndex, checked , fromCheckBox)
SelectRowCore(visibleIndex, check)
1. void SelectRowOnPage( int visibleIndex);
2. void SelectRowOnPage( int visibleIndex, bool
selected); Selects or deselects the specified row displayed on the current
page. 選中或取消選中當前頁面上指定行。
1: void SelectRows()
2: void SelectRows( int visibleIndex)
3: void SelectRows(int32[] visibleIndces)
4: void SelectRows( int visibleIndex, bool selected)
5: void SelectRows(int32[] visibleIndces, bool selected) Selects or deselects the specified row within the
ASPxGridView. 選中或取消選中指定行。能夠不在當前頁。若是參數中包含了行號(visibleIndex),必須指定KeyFieldName。
1. void SelectRowsByKey( object key);
2. void SelectRowsByKey(Object[] keys);
3. void SelectRowsByKey( object key, bool
selected);
4. void SelectRowsByKey(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
其參數由程序員負責解釋。能夠某固定字符做爲參數分隔符。
例:
//自定義回調事件
protected void ASPxGridView1_CustomCallback( object sender, ASPxGridViewCustomCallbackEventArgs e)
{
if (e.Parameters.Length > 0)
{
int visibleIndex = 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], out visibleIndex))
{
this .ASPxGridView1.StartEdit(visibleIndex);
}
}
break ;
default :
break ;
}
}
}
}
前臺代碼示例:
Grid.PerformCallback( 'AddNewRow' )
Grid.PerformCallback( 'StartEdit|2' )
四10、 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
|