我正在制作一个C#asp.net网页,显示某些项目的数据,但我想在gridview中设置标题的值,以便根据用户正在查看的项目更改文本。
例如:用户想要查看对象A的数据,而不是应该进入数据库,找到该表应该为此项目的标题显示的值。
因此,如果在数据库中它说:尺寸,高度,材料比这三个都是标题文本。
但是如果它是对象B,它应该显示如下的标题文本:大小,长度,颜色。
每个项目的标题都有不同的文本,具体取决于用户选择的内容。
我已经完成了从数据库中获取值的部分。我在如何使用数据库中的标题名称动态生成标题时遇到问题。
我看到这个方法可以在.cs页面中使用,但它不是动态的。
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
e.Row.Cells[0].Text = "The new header";
}
}
如何从sql命令中获取我正在读取的值并将其与标题相关联?我只是找不到正确的语法或方法来关联它们。
答案 0 :(得分:0)
您可以动态更改GridView上的列定义。例如:
protected void Page_Load(object sender, EventArgs e) {
LoadTableDefs();
}
private void LoadTableDefs() {
GridView1.Columns.Clear();
if (/* condition 1 */) {
TemplateField tf = new TemplateField();
tf.HeaderTemplate = "foo";
tf.ItemTemplate = new ItemTemplate();
tf.EditItemTemplate = new EditItemTemplate();
GridView1.Columns.Add(tf);
} else if (/* condition 2 */) {
TemplateField tf2 = new TemplateField();
...
GridView1.Columns.Add(tf2);
}
}