问题:
我想在 gridview 数据绑定的中间添加标题。我更新了 DataTable 以包含标题及其正确位置(我在调试期间检查过,它们在那里)。在包含标题的新行上,不需要的字段之一(不需要,因为标题不需要该信息)在其中有一个名为“Subheader”的标志。
背景资料:
所以我的数据表行包含一个服务器名称,以及服务器所属的组。我更新了 DataTable,因此它插入了一个新行,其中服务器名称是标题文本。此新行所属的服务器组是“Subheader”。我的数据表包含的信息比我的 gridview 显示的要多。我的 gridview 只需要一列,但有一列visibility=false;
用于保存服务器组。
我想要达到的目标:
因此,当我将此数据表绑定到 gridview 时,我希望所有非标题行都成为指向另一个位置的链接。作为标题的所有数据行我只想保持原样。
代码:
private void CurrentServers_RowCreated(Object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if(e.Row.Cells[1].Text != "Subheader")
{
e.Row.Cells[0].Text = "<a href='/EventViewer.aspx?m=" + e.Row.Cells[0].Text + "&s=&e=Application&r=25'>" + e.Row.Cells[0].Text + "</a>";
}
}
}
问题:
这是行不通的。e.Row.Cells[1].Text != "Subheader"
总是返回真。在调试中,我检查了它的值,e.Row.Cells[1].Text
并且其中某处有我需要的信息。
- 这是我应该处理的正确事件吗?
- 我如何访问这些数据?
e.Row.Cells[1].Text
并且e.Row.Cells[1].ToString()
不要返回我想要的结果,即使在调试时我可以找到我想要的值e.Row
- 我已经尝试确切地找到它是如何工作的,但无法找到答案。如果我的 GridView 只有 2 个数据表列的列,则
e.Row.Cells
只有我的 gridview 需要的 2 个单元格,或者这是否发生在它分解数据表之前(即它是否具有我的数据表具有的所有列)