求解 gridview 中 RowDataBound 抛错
我在gridview中添加了一个模版列
<asp:TemplateField HeaderText="投诉状态">
<EditItemTemplate>
<asp:DropDownList ID="DDL_Status" runat="server">
<asp:ListItem Value="1">处理中</asp:ListItem>
<asp:ListItem Value="2">处理完</asp:ListItem>
<asp:ListItem Value="3">无法处理</asp:ListItem>
<asp:ListItem Value="0">未处理</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Lab_Status" runat="server" Text='<%# Bind("C_Status") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
第一次绑定可以正常运行,但当我点击 编辑命令 时RowDataBound中抛错了
显示 :未将对象引用设置到对象的实例。
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType==DataControlRowType.DataRow)
{
//未将对象引用设置到对象的实例。
int status = int.Parse((e.Row.FindControl("Lab_Status") as Label).Text);
string s = null;
switch (status)
{
case 0: s = "未处理"; break;
case 1: s = "处理中"; break;
case 2: s = "处理完"; break;
case 3: s = "无法处理"; break;
}
e.Row.Cells[4].Text = s;
}
}
asp.net gridview --------------------编程问答-------------------- 碰到过这样的问题,想想 --------------------编程问答-------------------- 引用空对象,没有数据嘛 --------------------编程问答-------------------- 没New --------------------编程问答-------------------- 先调试下看看你那个Label控件找到没有,也就是这个
e.Row.FindControl("Lab_Status") as Label--------------------编程问答-------------------- FindControl("Lab_Status")这样肯定是找不到的,因为你绑定的是一组数据,在客户端也是生成一组Label,并且ID名为Lab_Status0,Lab_Status1……这样的命名 --------------------编程问答-------------------- Label status= (Label)e.Row.FindControl("Label_status");
补充:.NET技术 , ASP.NET