
最好的方式是——在登录之后根据角色不同动态生成sql查询语言(该查询仅仅包含需要的列)。然后在page_load的if(!ispostback)中使用sqldataadapter去fill一个datatable,然后把datatable放到viewstate["dt"]中。然后在gridview_pageindexchanging事件中gridview1.pageindex
=
e.newpageindexgridview1.datasource
=
(datatable)viewstate["dt"]gridview1.databind()即可。
说起,相信很多学习.net的朋友并不会陌生。本文将由达内的讲师详细为您介绍关于的相关常识。 AspxGridView与GridView控件一样,都是 *** 作大数据量的列表数据的控件。那么我们如何像GridView控件一样,为AspxGridView控件添加一个序号列呢?就像下图一样: 有了序号列,用户可以快速定位自己想要的数据,对用户的体验度可加分不少哦。 一,首先为AspxGridView添加序号列 /// <summary>/// 为AspxGridView添加序号列,附件数量列
/// </summary>
/// <param name="_grid"></param>
public void SetGridAddNumberCol(AspxGridView _grid){if (_grid != null){if (_grid.Columns["序号"] == null){GridViewDataTextColumn col = new GridViewDataTextColumn()
col.HeaderStyle.HorizontalAlign = HorizontalAlign.Center
col.CellStyle.HorizontalAlign = HorizontalAlign.Center
col.EditFormSettings.Visible = DevExpress.Web.ASPxClasses.DefaultBoolean.False
col.Caption = "序号"
col.VisibleIndex = 0
_grid.Columns.Add(col)//这里主要是用来设置序号列的显示顺序,我们总是希望序号列显示在列表的最前面吧,但如果前面还有一个选择列的话,序号列就应该位于选择列的后面,也就是第二列。当然了,这段代码是可以根据情况来修改或者可以完全删除掉的。
bool isvisible
if (_grid.Columns[0].GetType().Name != "GridViewCommandColumn"){for (int i = 0i <_grid.Columns.Counti++){if (_grid.Columns[i].Caption == "序号")
_grid.Columns[i].VisibleIndex = 0else{isvisible = _grid.Columns[i].Visible
_grid.Columns[i].VisibleIndex = _grid.Columns[i].VisibleIndex + 1
_grid.Columns[i].Visible = isvisible}}}}} 二,添加后序后,还需要为该列赋值,当然了,这个就相当的简单了,我们只需要在AspxGridView的Grid_HtmlDataCellPrepared事件中为"序号"这个栏位赋值就好了,代码如下: protected void Grid_HtmlDataCellPrepared(object sender, AspxGridViewTableDataCellEventArgs e){if (IsCreateNumberCol &&e.DataColumn.Caption == "序号"){
e.Cell.Text = (e.VisibleIndex + 1).ToString()}} 如果你的数据源有使用了分页存储过程,而又想使用翻页后的序号是连续的,你可以改写填充序号的代码如下: protected void Grid_HtmlDataCellPrepared(object sender, AspxGridViewTableDataCellEventArgs e){if (IsCreateNumberCol &&e.DataColumn.Caption == "序号"){
e.Cell.Text = (e.VisibleIndex +(AspxGridViewID.PageIndex * AspxGridViewID.SettingsPager.PageSize) + 1).ToString()}} 注意:使用这个方法添加上的序号值,在使用DevExpress导出控件导出数据的时候是导不出来的。如果要想导出序号值,只有数据源中包含序号值才行。 现在,相信朋友们对于了解的更加清楚了,达内培训作为IT培训的领导品牌,为互联网行业培养了无数精英。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)