我在asp GridView中有一个标签,我想为它设置绑定数据。
这是我的RowDataBound方法:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
var name = (Label)e.Row.FindControl("Label_name");
name.Text ="sara";
name.DataBind();
}
这是我的GridView:
<asp:GridView ID="GridViewCertificateType" runat="server" AutoGenerateColumns="False" OnRowDataBound="GridView1_RowDataBound" >
<asp:Label ID="Label_name" runat="server" Text="" ></asp:Label>
但是在name.Text ="sara";
之后,我收到了这个例外:
Object reference not set to an instance of an object.
答案 0 :(得分:1)
试试这个
var name= (Label)e.Row.Cells[X].FindControl("Label_name");
name.Text ="sara";
name.DataBind();
X表示列的索引
答案 1 :(得分:1)
在RowDataBound方法中,确保您有条件检查行的类型。将为GridView中的每一行调用此事件,包括页眉和页脚行。如果在标题行中找不到Label_name
,则您将拥有一个空对象。一旦你这样做,就摆脱name.DataBind();
,因为它不需要。
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
var name = (Label)e.Row.FindControl("Label_name");
name.Text = "sara";
}
}