我使用DetailsView
来显示DataTable
中单个行的详细信息。如何动态隐藏DetailsView中的字段(字段数始终为0)
我做不是在设计的时候知道列名,所以我在标记中有AutoGenerateRows = true
。
DataView dv = myDataTable.AsDataView();
dv.RowFilter = string.Format("ResourceID = {0}", resourceId);
dvScoresBreakdown.DataSource = dv;
dvScoresBreakdown.DataBind();
大约有4列在DataView
,我不希望DetailsView
显示 - 主要是ID列。
我明白,我应该访问DataView
的Fields
属性,并设置相关领域的隐形:
dvScoresBreakdown.Fields[0].Visible = false;
dvScoresBreakdown.Fields[1].Visible = false;
然而,.Fields.Count
始终为零。所以我得到一个索引越界异常。
当我说“始终为零”时,我的意思是在.DataBind()
之后,以及在OnDataBinding
,OnDataBound
和OnPreRender
事件之后为零。
但是,DetailsView在页面上呈现并显示所有内容 - 原始DataView
中的所有列 - 所以dataview是绑定的!
我在做什么错?
就像我说的,它是一个'DetailsView'控件而不是'GridView'。 “DetailsView”上没有'.Columns'这样的属性。话虽如此,你确实让我走上了看行集合的正确轨道 - 非常感谢! – bgs264