【发布时间】:2012-09-12 09:56:26
【问题描述】:
我使用DetailsView 来显示DataTable 中单行的详细信息。
我确实不在设计时知道列名,所以我在标记中有AutoGenerateRows = true。
DataView dv = myDataTable.AsDataView();
dv.RowFilter = string.Format("ResourceID = {0}", resourceId);
dvScoresBreakdown.DataSource = dv;
dvScoresBreakdown.DataBind();
DataView 中有大约 4 列我不希望 DetailsView 显示 - 主要是 ID 列。
我知道我应该访问DataView 的Fields 属性并将相关字段设置为不可见:
dvScoresBreakdown.Fields[0].Visible = false;
dvScoresBreakdown.Fields[1].Visible = false;
但是,.Fields.Count 始终为零。所以我得到一个索引越界异常。
当我说“始终为零”时,我的意思是在 .DataBind() 之后以及在 OnDataBinding、OnDataBound 和 OnPreRender 事件中都为零。
但是,DetailsView 确实会在页面上呈现并显示所有内容 - 原始 DataView 中的所有列 - 所以数据视图是绑定的!
我做错了什么?
【问题讨论】:
标签: asp.net detailsview