我需要以编程方式在GridView中更改Label的值。
我使用此代码但不起作用。我无法找到控制权。
由于
protected void uxListAuthorsDisplayer_RowCreated(object sender, GridViewRowEventArgs e)
{
int myRowIndex = e.Row.RowIndex;
//Label myLabel = (Label)e.Row[myRowIndex].FindControl("uxUserIdDisplayer");
if (myRowIndex >= 0)
{
//e.Row.Cells[3].Text = "Ciao";
Label myLabel = (Label)e.Row.FindControl("uxUserIdDisplayer");
myLabel.Text = "TEST";
}
}
答案 0 :(得分:3)
您正在搜索行中带有索引“RowIndex”的单元格。
protected void uxListAuthorsDisplayer_RowCreated(object sender, GridViewRowEventArgs e) { // Skip the header and footer rows if (e.Row.RowType == DataControlRowType.DataRow) { Label myLabel = (Label) e.Row.FindControl("uxUserIdDisplayer"); } }
我更喜欢使用RowDataBound事件,因为当数据绑定到行时会发生这种情况,因此您可以通过DataBinder.Eval访问数据(e.Row.DataItem,“数据项”)< / p>
答案 1 :(得分:1)
GridView.RowCreated事件是合适的。也许您应该检查它是否不是标题行,例如确实无法找到控件的情况:
if(e.Row.RowType == DataControlRowType.DataRow)
{
Label myLabel = (Label)e.Row.FindControl("uxUserIdDisplayer");
myLabel.Text = "TEST";
}