您好,欢迎来到尔游网。
搜索
您的当前位置:首页gridview控件用法介绍

gridview控件用法介绍

来源:尔游网
ASPxGridView属性:概述设置(Settings) GridLines=\"Vertical\" : 网格样式 Vertical, Both, None ShowGroupPanel=\"True\" : 分组面板 ShowFooter=\"True\" : 脚注面板 ShowFilterRow=\"True\" : 过滤器行 ShowHeaderFilterButton=\"true\" : 表头过滤按钮

ShowFilterBar :允许显示过滤工具条

ShowGroupFooter=\"VisibleAlways\" : 分组脚注面板 Hidden | VisibleIfExpand | VisibleAlways

ShowPreview=\"true\" : 预览面板 ShowVerticalScrollBar=\"True\" : 垂直滚动条 VerticalScrollableHeight=\"250\" : 垂直滚动条 />

行为设置(SettingsBehavior) AllowDragDrop=\"False\" : 允许托拽 ColumnResizeMode=\"Control\" : 列宽度调整模式 AllowFocusedRow=\"True\" : 鼠标点击选择行

AllowSort :允许排序 AllowGroup :允许分组 autoExpandAllGroups :自动展开所有组 ConfirmDelete :允许提交删除 AllowMultiSelection :允许选择多行

/>

分页(SettingsPager) PageSize=\"30\" : 分页大小 Mode=\"ShowAllRecords\" : 展示模式

SEOFriendly=\"Enabled\" : Search engine friendly Position=\"TopAndBottom\" : 分页控件位置 >

文本设置(SettingsText) EmptyDataRow=\"无数据\" PopupEditFormCaption=\"编辑\" ConfirmDelete=\"确定删除?\" />

Loading 面板设置(SettingsLoadingPanel)

编辑视图设置(SettingsEditing) PopupEditFormWidth = \"600px\" NewItemRowPosition = \"Bottom\" Mode = \"PopupEditForm\" />

编辑模式 SettingsEditing.Mode

EditForm : 当前行转化为表单,嵌入在行中 EditFormAndDisplayRow : 同EditForm,但保留当前行 Inline : 在当前行现场编辑 PopupEditForm : 弹出窗口编辑 行详细设置(SettingDetail)

AllowOnlyOneMasterRowExpanded :允许只展开一列详细信息 ShowDetailRow :允许显示详细列表 IsDetailGrid :允许显示分组

>

动态选中某一行:

AspxgridView1.Selection.SetSelection(i.true)

遍历所有行:

声明变量:DataRowView dv

For(int i=0;i< AspxgridView1.VisbleRowCount;i++) {

选中行提取数据:if(AspxgridView1.Selection.IsRowSelected(i)) {

行数据集 dv=(DataRowView)AspxgridView1.GetRow(i); } }

ASPxGridView 样式 & 格式

--------------------------------------------------------- 集中式样式

: 标题居中对齐 : 交错行效果

: 列样式

数字日期格式 金额

时间

图像

ASPxGridView分组 & 汇总 & 排序

---------------------------------------------------------

间隔分组:将时间日期字段按个性分组,如年、月、日、周、季度、上周、下周.....

汇总

分组汇总

ASPxGridView 列:

--------------------------------------------------------- 基本列(GridViewDataColumn)

其他列

: 文本列 : 长文本列 : 图像列

: 二进制图像列 : 日期列 : 时间列 : 组合框列 : 下拉框编辑列? : 命令按钮列 : 编辑按钮列? : 复选框列 : 色彩列 : 超链接列 : 进度条列 : SpinEdit列

长文本列(GridViewDataMemoColumn) 编辑时展现为多行文本框

超链接列(GridViewDataHyperLinkColumn)

组合框列(GridViewDataComboBoxColumn)

protected void grid_CellEditorInitialize(object sender, ASPxGridViewEditorEventArgs e) {

// 用下拉框展示国家下的所有城市 绑定数据源

if(grid.IsEditing && e.Column.FieldName != \"City\" && !grid.IsNewRowEditing) {

ASPxComboBox combo = e.Editor as ASPxComboBox;

string country = (string)grid.GetRowValuesByKeyValue(e.KeyValue, \"Country\"); FillCityCombo(combo, country); } }

命令按钮列(GridViewCommandColumn)

OnRowDeleting=\"gv_RowDeleting\" OnRowUpdating=\"gv_RowUpdating\" OnRowInserting=\"gv_RowInserting\"

一种是添加图片的

一种就只这种标准的:

代码详见《ASPxGridView.DataBind》 复选框列

自定义按钮 “删除”按钮

protected void gv_CustomButtonCallback(object sender, ASPxGridViewCustomButtonCallbackEventArgs e)

{

if (e.ButtonID == \"DeleteFile\") {

long fileId = Convert.ToInt(gv.GetRowValues(e.VisibleIndex, \"FileId\")); string fileName = gv.GetRowValues(e.VisibleIndex, \"FileName\").ToString(); string filePath = Common.Config.Path.PhysicalUploadFolder + gv.GetRowValues(e.VisibleIndex, \"FilePath\").ToString(); System.IO.File.Delete(filePath); using (DbFile db = new DbFile()) db.DelFile(fileId); ShowData(this.FileBatchId); } } “复制行”按钮

Hashtable copiedValues;

protected void grid_CustomButtonCallback(object sender, ASPxGridViewCustomButtonCallbackEventArgs e) {

if(e.ButtonID == \"Copy\") {

copiedValues = new Hashtable(); foreach(string fieldName in copiedFields)

copiedValues[fieldName] = grid.GetRowValues(e.VisibleIndex, fieldName);

grid.AddNewRow(); } }

protected void grid_InitNewRow(object sender, DevExpress.Web.Data.ASPxDataInitNewRowEventArgs e) {

if(copiedValues != null)

foreach(string fieldName in copiedFields)

e.NewValues[fieldName] = copiedValues[fieldName]; }

非绑定列(GridViewDataTextColumn)

protected void grid_CustomUnboundColumnData(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewColumnDataEventArgs e) {

// Total = UnitPrice * Quantity if(e.Column.FieldName == \"Total\") {

decimal price = (decimal)e.GetListSourceFieldValue(\"UnitPrice\"); int quantity = Convert.ToInt32(e.GetListSourceFieldValue(\"Quantity\")); e.Value = price * quantity; } }

模板列(GridViewDataTextColumn)

onhtmlrowcreated=\"grid_HtmlRowCreated\"

')\">更多...

&name=<%#Eval(\"FileName\") %> \" >下载

protected void grid_HtmlRowCreated(object sender, ASPxGridViewTableRowEventArgs e) {

if (!grid.IsEditing && e.RowType == DevExpress.Web.ASPxGridView.GridViewRowType.Data) {

// 操作 Label 控件

Label label = grid.FindRowCellTemplateControl(e.VisibleIndex, null, \"changePercent\") as Label;

decimal change = (decimal)grid.GetRowValues(e.VisibleIndex, \"Change\"); label.Text = string.Format(\"{0:p}\change); // 操作 Image 控件

System.Web.UI.WebControls.Image img = (System.Web.UI.WebControls.Image)grid.FindRowCellTemplateControl(e.VisibleIndex, null, \"changeImage\"); img.Visible = false; if(change != 0) {

img.Visible = true;

img.ImageUrl = change < 0 ? \"~/Images/arRed.gif\" : \"~/Images/arGreen.gif\";

label.ForeColor = change < 0 ? Color.Red : Color.Green; } } }

注:模板列中的事件如何写?手工写事件,如btn.OnClick += ...; 注:视图模板请参考文档《ASPxGridView.Templates》

ASPxGridView 事件

RowCreated(创建行数据时触发,类似 GridView 的 DataItemCreate 事件)

protected void grid_HtmlRowCreated(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewTableRowEventArgs e) {

if(e.RowType != DevExpress.Web.ASPxGridView.GridViewRowType.Data) return; // 设置模板列lable控件值

Label label = grid.FindRowCellTemplateControl(e.VisibleIndex, null, \"changePercent\") as Label;

decimal change = (decimal)grid.GetRowValues(e.VisibleIndex, \"Change\"); label.Text = string.Format(\"{0:p}\change); // 设置模板列image控件的图像

System.Web.UI.WebControls.Image img = (System.Web.UI.WebControls.Image)grid.FindRowCellTemplateControl(e.VisibleIndex, null, \"changeImage\");

img.Visible = false; if(change != 0) { img.Visible = true;

img.ImageUrl = change < 0 ? \"~/Images/arRed.gif\" : \"~/Images/arGreen.gif\"; label.ForeColor = change < 0 ? Color.Red : Color.Green; } }

HtmlRowPrepared(行准备?可在此设置行的展示效果,如背景)

protected void grid_HtmlRowPrepared(object sender, ASPxGridViewTableRowEventArgs e) {

bool hasError = e.GetValue(\"FirstName\").ToString().Length <= 1; hasError = hasError || e.GetValue(\"LastName\").ToString().Length <= 1; hasError = hasError || !e.GetValue(\"Email\").ToString().Contains(\"@\"); hasError = hasError || (int)e.GetValue(\"Age\") < 18; DateTime arrival = (DateTime)e.GetValue(\"ArrivalDate\");

hasError = hasError || DateTime.Today.Year != arrival.Year || DateTime.Today.Month != arrival.Month; if(hasError) {

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

UnboundColumnData (非绑定列数据填充)

protected void grid_CustomUnboundColumnData(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewColumnDataEventArgs e) {

if(e.Column.FieldName == \"Total\") {

decimal price = (decimal)e.GetListSourceFieldValue(\"UnitPrice\"); int quantity = Convert.ToInt32(e.GetListSourceFieldValue(\"Quantity\")); e.Value = price * quantity; } }

CustomColumnDisplayText(定制列文本展示)

protected void grid_CustomColumnDisplayText(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewColumnDisplayTextEventArgs e) {

if(object.Equals(e.Column, grid.Columns[\"Size\"]))

e.DisplayText = GetSizeDisplayText(e.Value); }

SummaryDisplayText(合计行文本展示)

protected void grid_SummaryDisplayText(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewSummaryDisplayTextEventArgs e) { if(e.Item.FieldName == \"Size\") { e.Text = GetSizeDisplayText(e.Value); } }

HeaderFilterFillItems(自定义过滤器处理逻辑)

protected void grid_HeaderFilterFillItems(object sender, ASPxGridViewHeaderFilterEventArgs e) {

if(object.Equals(e.Column, grid.Columns[\"Total\"])) { PrepareTotalFilterItems(e); return; }

if(object.Equals(e.Column, grid.Columns[\"Quantity\"])) { PrepareQuantityFilterItems(e); return; } }

--------------------------------------------------------- 回调处理

--------------------------------------------------------- CustomCallback(Ajax 回调处理)

protected void grid_CustomCallback(object sender, ASPxGridViewCustomCallbackEventArgs e) {

int layoutIndex = -1;

if(int.TryParse(e.Parameters, out layoutIndex)) ApplyLayout(layoutIndex); // 更换布局 }

CustomButtonCallback(定制按钮的ajax回调处理)

protected void grid_CustomButtonCallback(object sender, ASPxGridViewCustomButtonCallbackEventArgs e) {

if(e.ButtonID != \"Copy\") return; copiedValues = new Hashtable();

foreach(string fieldName in copiedFields)

copiedValues[fieldName] = grid.GetRowValues(e.VisibleIndex, fieldName);

grid.AddNewRow(); }

--------------------------------------------------------- 编辑视图

--------------------------------------------------------- InitNewRow(新建行的数据初始化处理)

protected void grid_InitNewRow(object sender, DevExpress.Web.Data.ASPxDataInitNewRowEventArgs e) {

if(copiedValues == null) return;

foreach(string fieldName in copiedFields) {

e.NewValues[fieldName] = copiedValues[fieldName]; } }

CellEditorInitialize(编辑器初始化)

protected void grid_CellEditorInitialize(object sender, ASPxGridViewEditorEventArgs e) {

if(grid.IsEditing && !grid.IsNewRowEditing && e.Column.FieldName == \"City\") {

string country = (string)grid.GetRowValuesByKeyValue(e.KeyValue, \"Country\"); ASPxComboBox combo = e.Editor as ASPxComboBox; FillCityCombo(combo, country);

combo.Callback += new CallbackEventHandlerBase(cmbCity_OnCallback); } }

StartRowEditing(开始编辑)

protected void grid_StartRowEditing(object sender, DevExpress.Web.Data.ASPxStartR

owEditingEventArgs e) {

if(!grid.IsNewRowEditing) { grid.DoRowValidation(); } }

RowValidating (行数据验证)

protected void grid_RowValidating(object sender, DevExpress.Web.Data.ASPxDataValidationEventArgs e) {

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 can't be null.\"; } }

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

if(e.NewValues[\"FirstName\"] != null && e.NewValues[\"FirstName\"].ToString().Length < 2) {

AddError(e.Errors, grid.Columns[\"FirstName\"], \"First Name must be at least two characters long.\"); }

if(e.NewValues[\"LastName\"] != null && e.NewValues[\"LastName\"].ToString().Length < 2) {

AddError(e.Errors, grid.Columns[\"LastName\"], \"Last Name must be at least two characters long.\"); }

if(e.NewValues[\"Email\"] != null && !e.NewValues[\"Email\"].ToString().Contains(\"@\")) {

AddError(e.Errors, grid.Columns[\"Email\"], \"Invalid e-mail.\"); }

int age = 0;

int.TryParse(e.NewValues[\"Age\"] == null ? string.Empty : e.NewValues[\"Age\"].ToString(), out age); if(age < 18) {

AddError(e.Errors, grid.Columns[\"Age\"], \"Age must be greater than or equal 18.\");

}

DateTime arrival = DateTime.MinValue;

DateTime.TryParse(e.NewValues[\"ArrivalDate\"] == null ? string.Empty : e.NewValues[\"ArrivalDate\"].ToString(), out arrival);

if(DateTime.Today.Year != arrival.Year || DateTime.Today.Month != arrival.Month) {

AddError(e.Errors, grid.Columns[\"ArrivalDate\"], \"Arrival date is required and must belong to the current month.\"); }

if(string.IsNullOrEmpty(e.RowError) && e.Errors.Count > 0) e.RowError = \"Please, correct all errors.\";

if (e.NewValues[\"Name\"] == null) {

e.RowError = \"功能名称不能为空,请填写功能名称\"; return; }

if (e.NewValues[\"Remarks\"] == null) {

e.RowError = \"功能备注不能为空,请填写功能备注\"; return; } }

行修改事件 RowUpdating

protected void gvFunction_RowUpdating(object sender, DevExpress.Web.Data.ASPxDataUpdatingEventArgs e) {

functionModel.Name = e.NewValues[0].ToString();// 组名称 functionModel.Remarks = e.NewValues[1].ToString(); // 组备注 functionModel.FunctionId = e.Keys[0].ToString();// ID rmodel = client.FunctionEdit(functionModel);// 返回类型表 gvFunction.CancelEdit();//结束编辑状态 e.Cancel = true;

FunctionDataBind();//更新数据 }

行添加事件RowInserting

protected void gvFunction_RowInserting(object sender, DevExpress.Web.Data.ASPxDataInsertingEventArgs e) {

functionModel.Name = e.NewValues[0].ToString();// 组名称

functionModel.Remarks = e.NewValues[1].ToString(); // 组备注 rmodel = client.FunctionSubmit(functionModel);// 返回类型表

gvFunction.CancelEdit();//结束编辑状态 e.Cancel = true;

FunctionDataBind();//更新数据 }

行删除事件RowDeleting

protected void gvFunction_RowDeleting(object sender, DevExpress.Web.Data.ASPxDataDeletingEventArgs e) {

functionModel.FunctionId = e.Keys[0].ToString();// ID client.FunctionInfoDelete(functionModel); gvFunction.CancelEdit();//结束编辑状态 e.Cancel = true;

FunctionDataBind();//更新数据 }

初始化回调事件 Callback

protected void callbackPanel_Callback(object sender, DevExpress.Web.ASPxClasses.CallbackEventArgsBase e) {

strGroupID = e.Parameter.ToString(); DataBindInfo();// 初始化页面信息 SelectUser();// 查找组里面的所有用户 DataCheck();

}

获取行展开改变事件 DetailRowExpandedChanged

protected void gvGroup_DetailRowExpandedChanged(object sender, ASPxGridViewDetailRowEventArgs e) {

SYSolution_WebUI.ServiceReference.GroupInfo groupInfoModel =

(SYSolution_WebUI.ServiceReference.GroupInfo)((ASPxGridView)sender).GetRow(e.VisibleIndex);// 获取选中行实体

ASPxGridView gv =

(ASPxGridView)gvGroup.FindDetailRowTemplateControl(e.VisibleIndex, \"gvGroupName\"); // 获取模板内aspxgridView ID名称

SYSolution_WebUI.ServiceReference.GroupInfo[] model =

client.GroupSelUserList(\"GroupId='\" + groupInfoModel.GroupId + \"'\");// 通过组ID值获取实体对象 if (model[0].UserInfoList != null && gv != null)// 当用用户列表值与子aspxgridView不为空

{

gv.DataSource = model[0].UserInfoList; // 子aspxgridView绑定数据源 gv.DataBind(); }

if (model[0].UserInfoList[0].Name == \"\") // 如果子aspxgridView中的用户列表为空时不显示 不展开 {

gvGroup.SettingsDetail.AllowOnlyOneMasterRowExpanded = false; } }

排序 事件中重新绑定数据 BeforeColumnSortingGrouping

protected void gvGroup_BeforeColumnSortingGrouping(object sender, ASPxGridViewBeforeColumnGroupingSortingEventArgs e) {

gvGroup.DetailRows.CollapseAllRows();// 关闭所有DetailoRow

gvGroup.DetailRows.ExpandRow(3); }

重绑定数据使用时先选中行,再查看 FocusedRowChanged

Protected void aspxGridView_FocusedRowChanged(object sender,EventArgs e){}

行列绑定数据事件CustomUnboundColumnData

Protected void aspxGridView_CustomUnboundColumnData(object sender,EventArgs e){}

.隐藏编辑列,在DataBound事件中

protected void ASPxGridView1_DataBound(object sender, EventArgs e) {

if(ASPxGridView1.VisibleRowCount>0) {

//ASPxGridView1.Columns[命令列索引]

(ASPxGridView1.Columns[4] as GridViewCommandColumn).NewButton.Visible = false; } }

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- axer.cn 版权所有 湘ICP备2023022495号-12

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务