当前位置:编程学习 > C#/ASP.NET >>

求解 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 --------------------编程问答-------------------- 碰到过这样的问题,想想 --------------------编程问答-------------------- 引用空对象,没有数据嘛 --------------------编程问答--------------------
引用 2 楼 Mic_Gary 的回复:
引用空对象,没有数据嘛
 没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
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,