1、ASPxGridview使用总结ASPxGridview使用总结导读ASPxGridView的增,删,改,查,数据绑定,外观显示,功能设定,分页 一。ASPXGridView外观显示属性:Caption-列的标题(KeyFieldName-数据库字段SEOFriendly 是否启用搜索引擎优化Summary 指定分页汇总信息的格式Setting节点的ShowFilterRow=True设置快速查找功能SettingsBehavior.AllowFocusedRow=true 高亮选中的行,即选中行变色SettingsBehavior.AllDragDrop=false禁止拖动标题列头Setti
2、ngsBehavior.AllowSort实现列头点击后是否可以排序SettingsPager.ShowEmptyDataRows=True;当数据行为空时,显示空行SettingsPager.PageSize 每页显示的记录总数AllButton.Text “全部数据显示”按钮的文本AllButton.Visible 是否显示“全部数据显示”按钮FirstPageBuotton/LastPageButton/NextPageButton/PrevPageButton/ 对应首页、末页、下页、上页,设置同上。NumericButtonCount 最小值为1,控制页码显示个数protected
3、void ASPxGridView1_PageIndexChanged(object sender, EventArgs e)databind();/只需重新绑定数据即可实现上下翻页新建的列默认是GridViewDataTextColumn类型,选择工具栏的Change To变更列的类型,可以改变新增或修改时的编辑方式。设置日期类型显示格式,在“行为”PropertiesDateEdit-DisplayFormatString-例如:0:yyyy年MM月当选择了show Group Panel时,FocusedRowChanged事件,重绑定数据,使用时先选中行,再查看protected vo
4、id ASPxGridView1_FocusedRowChanged(object sender, EventArgs e)getdata();禁止某一列进行编辑,该列的行为-EditFormSettings-Visible=False代码中隐藏编辑列的增加,删除,更新按钮(ASPxGridView1.Columns编辑列 as GridViewCommandColumn).NewButton .Visible= true;(ASPxGridView1.Columns编辑列 as GridViewCommandColumn).DeleteButton.Visible = true;(ASPxG
5、ridView1.Columns8 as GridViewCommandColumn).UpdateButton .Visible= true;每行都有一个CHECKBOX,可以动态选择,只需要这样即可.其它列二。ASPXGridView绑定数据ASPxGridView1.KeyFieldName = ID;/指定主键。直接更新数据和子表绑定 需要用到ASPxGridView1.DataSource = dt.defaultView;/指定Grid的数据ASPxGridView1.DataBind(); /执行绑定注意,如果查询结果字段有别名,编辑该字段时,UnboundType应设为Obje
6、ct三。ASPXGridView查找过滤数据,查找数据 方式一、展开列标题旁边的过滤清单过滤数据(类似Excel的过滤方式)grid.Settings.ShowHeaderFilterButton = true;过滤清单列出了该列出现的所有数据。还可以自定义过滤清单的内容,用法参阅:方式二、在列头显示字段过滤条件输入框 grid.Settings.ShowFilterRow = true; 显示条件判断方式下拉列表grid.Settings.ShowFilterRowMenu = true;四删除数据protected void ASPxGridView1_RowDeleting(object
7、 sender, DevExpress.Web.Data.ASPxDataDeletingEventArgs e)e.Cancel = true;/否则,只有刷新页面才能看到删除后的结果int id =Convert.ToInt32( e.Keys0);/获取IDupd.DelDownFileList(id);/从数据库删除记录UpLoadFileListBind();/数据表绑定ASPxGridView自带的删除提示,设两个属性即可:SettingsBehavior. = ConfirmDelete=TrueSettingsText = ConfirmDelete=要提示的字符串五.更新取值
8、 用e.NewValues索引并且记得更新数据后 ASPxGridView1.CancelEdit();/结束编辑状态e.Cancel = true;bind();例子: /更新protected void ASPxGridView1_RowUpdating(object sender, DevExpress.Web.Data.ASPxDataUpdatingEventArgs e)Bill.Message m = new Bill.Message();/取值 用e.NewValues索引string id = Convert.ToString(e.Keys0);string event_da
9、te = e.NewValues1.ToString();string event_title = e.NewValues2.ToString();string event_description = e.NewValues3.ToString();string tag = e.NewValues4.ToString();m.Message_update(id, event_date, event_title, event_description, tag);ASPxGridView1.CancelEdit();/结束编辑状态e.Cancel = true;bind();六排序在BeforeC
10、olumnSortingGrouping事件中重新绑定一下数据七.分页PageIndexChanged事件里重新绑定一下数据1.动态添加非数据绑定列,例子:动态添加行号列if (!IsPostBack)/动态添加行号非绑定数据GridViewDataTextColumn dl = new GridViewDataTextColumn();dl.Caption = 行号;dl.FieldName = hh;/该列绑定的字段hhdl.UnboundType = DevExpress.Data.UnboundColumnType.String;/非数据绑定类型为字符型dl.PropertiesTex
11、tEdit.DisplayFormatString = c;/显示字符的格式dl.PropertiesTextEdit.FocusedStyle.ForeColor = System.Drawing.Color.Red;dl.VisibleIndex = 0;/设置行号列的索引位置ASPxGridView1.Columns.Insert(0, dl);/把行号列插入0之前getdata();ASPxGridView1.Caption = IP为+GetClientIP()+的用户,正在查看网银终端更新内容;在CustomUnboundColumnData事件中protected void AS
12、PxGridView1_CustomUnboundColumnData(object sender, ASPxGridViewColumnDataEventArgs e)if (e.Column.FieldName = hh & e.IsGetData)e.Value = (e.ListSourceRowIndex + 1).ToString();2.ASPxComboBox列的相关操作简单的方法是1.FiledName写主表与此字段有关联外键字段:例如uid2.在PropertiesCombobox下面找这几个属性:然后在客户姓名的这一列的DataSourceId,给它绑定上我们字表的Obj
13、ectDataSource在TextField设置字段名称,例如:name在ValueField设置名称应该就是字表的主键(也就是主表引用字表的外键),例如:uid这样就可以轻松做到,不用写代码,绑定多张表手写代码的方法来绑定ASPxComboBox在aspx中将该列的-行为-PropertiesComboBox-ValuesType设为System.String避免ComboBox出现无法选中的现象using DevExpress.Web.ASPxGridView;using DevExpress.Web.ASPxEditors;/在页面加载时,给combox列赋值,这里的workgroup
14、ID是在ASPxGridview中的Combox列绑定的字段(ASPxGridView1.ColumnsWorkgroupID as GridViewDataComboBoxColumn).PropertiesComboBox.ValueType = typeof(int);fangqm.Netbank.Core.groupInfo group = new fangqm.Netbank.Core.groupInfo();DataTable dt = group.groupSelectAll();/tablefor (int i = 0; i 0)/ASPxGridView1.Columns命令
15、列索引(ASPxGridView1.Columns4 as GridViewCommandColumn).NewButton.Visible = false;六。AspxGridView常见问题A.点Edit或new按钮,Delete出来Update和cancel,编辑完数据后点击Update,出错:“不支持所指定的方法”.解决方法:1、确保ASPxGridView已设置了KeyFieldName2、确保ASPxGridView已定义了事件 OnRowDeleting, OnRowInserting, OnRowUpdating3、后台代码中有对 OnRowDeleting, OnRowIns
16、erting, OnRowUpdating 事件的处理。2、 绑定主从表(IList)List的元素带有List属性(Category.Products),并且需要以Grid嵌套的方式显示。1、 选中GridView(gird1),右键菜单选择“编辑模板”“DetailRow”,页面打开明细数据界面,向DetailRow添加一个新的ASPxGridView (grid2)显示明细数据,可以设定grid2的Columns相关属性。Grid2.SettingsDetail.IsDetailGrid = true 指定grid2作为从表数据表格。2、 增加grid2 DataBinding事件 Co
17、deprotected void grid2_DataBinding(object sender, EventArgs e)DevExpress.Web.ASPxGridView.ASPxGridView grid = sender as DevExpress.Web.ASPxGridView.ASPxGridView;if (grid != null) & (dict != null) int i = (int) grid.GetMasterRowKeyValue();/*取主表记录的Key,主表grid必须设定KeyFieldName*/if (i = 0) grid.DataSource
18、 = dict.Products;/通过Key定位数据,指定子表数据源 3、 右键点击DetailRow,选“结束模板编辑”。修改grid1.SettingsDetail的相关属性Bool AllowOnlyOneMasterRowExpanded 默认False,是否只允许主表一行展开。True后展开第二行明细记录时,会关闭上次展开的明细记录。Bool ShowDetailButton 是否显示明细按钮,True显示一个“+”在行首Bool ShowDetailRow True显示明细数据4、 过滤数据方式一、展开列标题旁边的过滤清单过滤数据(类似Excel的过滤方式) grid.Setti
19、ngs.ShowHeaderFilterButton = true;过滤清单列出了该列出现的所有数据。还可以自定义过滤清单的内容,用法参阅:方式二、在列头显示字段过滤条件输入框 grid.Settings.ShowFilterRow = true; 显示条件判断方式下拉列表grid.Settings.ShowFilterRowMenu = true;5、 用户自定义列显示Grid.SettingCustomizationWindowEnabled 运行自定义列显示PopupHorizontalAlign 列编辑窗水平对齐方式PopupVerticalAlign 列编辑窗垂直对齐方式通过Java
20、Script打开列编辑框。Codefunction UpdateCustomizationWindowValue() var element = document.getElementById(btnCustWindow);if(element = null) return;element.value = (grid.IsCustomizationWindowVisible() ? Hide : Show) + Customization Window;function ShowHideCustomizationWindow() if(grid.IsCustomizationWindowVis
21、ible()grid.HideCustomizationWindow();else grid.ShowCustomizationWindow(); UpdateCustomizationWindowValue();.小技巧:AspxGridView在绑定数据的时候,如果数据列的类型是日期型,这时应该用“GridViewDataColumn”而不应该用“GridViewDataTextColumn”,这样的话,数据显示出来的格式就如“1900-01-01,而不是1900-01-01 0:00:00.AspxGridView中查找控件不能像GridView中一样用FindControl,而应该用
22、FindRowCellTemplateControl方法。应该彻底放弃Response.Write()方法来输出字符中,如果页面中调用了Response.Write方法,会导致AspxGridView的客户端排序功能失去控件,具体表现为:点击排序时,显示loading,然后就没有反应了,一直loading下去,不会完成排序操作。利用ASPxGridViewExporter导出aspxgridview中的数据时,如果有数据列,虽然我们可以利用来格式化aspxgridview的日期列显示样式,但是我们却无法控制利用ASPxGridViewExporter导出后的excel文件中的样式,这时,导出的
23、excel文件中,日期列的显示格式为数据库中aspxgridview数据源中日期列的格式。所以如果想控制导出后excel日期列的格式,必须从aspxgridview的数据源下手,在数据源中格式化日期列,就可以达到格式化导出后excel文件日期列格式的目的了四:导出ASPxGridView的数据添加一个ASPxGridViewExporter控件到Page,设置GridViewID为需要导出数据的aspxgridview,调用以下方法实现导出。ASPxGridViewExporter1.WriteXlsToResponse()ASPxGridViewExporter1.WriteCvsToRes
24、ponse()ASPxGridViewExporter1.WritePdfToResponse()ASPxGridViewExporter1.WriteRtfToResponse()关于导出EXCEL日期格式,操作EXCEL,设置单元格为相应的格式即可1.遍历主键列中的所有数据.List keyValue = AspxGridView1.GetSelectedFieldValues(kid);string str;foreach(object key in keyValue)str = key.ToString();2.动态选择某一行./n为要选择的行数AspxGridView1.Select
25、ion.SetSelection(n,true);3.获取所有选择行中的数据.这里要注意去这里查看4.问题:当AspxGridView的单元格中包含超链接按钮时,AspxGridView排序后引起超链接错位.解决方案:设置超链接按钮的属性 EnableViewState=false;5.根据某行的数据,动态设置选择复选框不可编辑,及动态设置行背景色.protected void AspxGridView1_HtmlRowPrepared(object sender,ASPxGridViewTableRowEventArgs e)/判断bomcode是否为空.if(e.GetValue(bomc
26、ode).ToString().Trim() = )/设置选择复选框不可编辑 e.Row.Cell0.Enabled = false;/将背景色设置为浅灰色e.Row.BackColor = Color.LightGray;/表中有个链接地址,实现点链接地址下载文件,引用命名空间DevExpress.Web.ASPxGridView;/如果不想动态绑定,只需要设置列的FieldName为链接址址字段,TextField为显示链接名称的字段即可protected void ASPxGridView1_Init(object sender, EventArgs e)GridViewDataHyperLinkColumn colLink = new GridViewDataHyperLinkColumn();/实
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1