加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 从代码隐藏更改GridView列属性

发布时间:2020-12-16 06:56:18 所属栏目:asp.Net 来源:网络整理
导读:我正在这样的方法中创建一个GridView: GridView gridView = new GridView();gridView.DataSource = reportData.Tables[0];gridView.DataBind(); 我稍后将其导出到Excel,它运行良好.这些列是从我的源数据自动生成的.我想在我数据绑定之后和导出到Excel之前更
我正在这样的方法中创建一个GridView:

GridView gridView = new GridView();
gridView.DataSource = reportData.Tables[0];
gridView.DataBind();

我稍后将其导出到Excel,它运行良好.这些列是从我的源数据自动生成的.我想在我数据绑定之后和导出到Excel之前更改某些列的DataFormatString属性.我似乎无法找到正确的属性来改变.任何人都能指出我正确的方向吗?

解决方法

根据 AutoGenerateColumns documentation:

This option provides a convenient way
to display every field in the data
source; however,you have limited
control of how an automatically
generated column field is displayed or
behaves
.

Note: Automatically
generated bound column fields are not
added to the Columns collection
.

我厌倦了寻找这些AutoGeneratedField而没有运气.
我可以想到实现这一目标的几种方案(从最差到最好):

>向网格添加一个事件(如RowDataBound),这将使您可以访问行的单元格,但不太方便.
>不要使用AutoGeneratedField手动创建这些列,如下所示:

BoundField dateField = new BoundField();
dateField.HeaderText = "Date";
dateField.DataField = "date";
dateField.DataFormatString = "{0:MMMM,yyyy}";
gridView.Columns.Add(dateField);

此选项可让您控制标题.
>添加另一个图层以进行数据格式化和演示.这可能是最好的选择.此外,通过这种方式您不必使用DataTables,GridView可以绑定到具有公共属性的任何对象集合(例如,绑定到List< Employee),并且AutoGeneratedField将它们转换为列.
我认为这是最好的选择.假设您可以访问自动列,那么呢?您必须根据其名称或索引搜索列,这看起来非常混乱,并且会增加耦合.

而且,作为最后一点,您应该考虑使用API??创建Excel文件.它并不容易,但HTML XLS文件与Excel 2007的兼容性较低 – 它会显示一条警告消息,指出文件的格式与扩展名不兼容,更糟糕的是,如果文件打开并保存,则文件会进行制动(可以另存为虽然),使您的文件不那么用户友好.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读