我有一个代码:
protected void gvContacts_RowDatabound(object sender, GridViewRowEventArgs e)
{
Label label = new Label();
label.Text = "test";
if (e.Row.RowType == DataControlRowType.DataRow && e.Row.RowIndex == 0)
{
for (int i = 0; i < e.Row.Cells.Count; i++)
{
e.Row.Cells[i].Controls.Add(label); //doesnt work
e.Row.Cells[i].Text = "this works";
}
}
}
其中标签不出现在我的单元格中。怎么了?
答案 0 :(得分:1)
您需要在每个循环中创建标签的新实例
for (int i = 0; i < e.Row.Cells.Count; i++)
{
label = new Label();
label.Text = "test";
e.Row.Cells[i].Controls.Add(label);
e.Row.Cells[i].Text = "this works";
}
答案 1 :(得分:0)
首先要做的事情:
RowType
实际上是DataControlRowType.DataRow
e.Row.RowIndex == 0
在代码中设置断点,以便确保这些值。
在此之后,看起来您的代码应该可以正常工作。
答案 2 :(得分:0)
假设你有一个标题行:
if (e.Row.RowType == DataControlRowType.DataRow && e.Row.RowIndex == 0)
您的第0行将是DataControlRowType.HeaderRow
你想要!= 0,我想
答案 3 :(得分:0)
尝试在添加控件之前添加TableCell:
TableCell cell = new TableCell();
e.Row.Cells.Add(cell);
e.Row.Cells[i].Controls.Add(label);