虽然填充Checkboxlist获取错误nullreferenceexception未被用户代码处理? Asp.net

时间:2014-03-14 06:51:11

标签: asp.net .net ajax updatepanel checkboxlist

我正在尝试填充更新面板中的asp.net 4.0中的复选框列表,我的代码是

  <div>
                                    <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
        </asp:ToolkitScriptManager>
        <asp:UpdatePanel ID="updatepanel1" runat="server">
            <ContentTemplate>
                <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                <asp:PopupControlExtender ID="TextBox1_PopupControlExtender" runat="server" DynamicServicePath=""
                    Enabled="True" ExtenderControlID="" TargetControlID="TextBox1" PopupControlID="Panel1"
                    OffsetY="22">
                </asp:PopupControlExtender>
                <asp:Panel ID="Panel1" runat="server" Height="116px" Width="145px" BorderStyle="Solid"
                    BorderWidth="2px" Direction="LeftToRight" ScrollBars="Auto" BackColor="#CCCCCC"
                    Style="display: none">
                    <asp:CheckBoxList ID="CheckBoxList1" runat="server"  
                        DataTextField="holiday_name" DataValueField="holiday_name" AutoPostBack="True"
                        OnSelectedIndexChanged="CheckBoxList1_SelectedIndexChanged">
                    </asp:CheckBoxList>
                </asp:Panel>
            </ContentTemplate>
        </asp:UpdatePanel>
    </div>

我的代码背后是,

 CheckBoxList CheckBoxList1 = (CheckBoxList)Page.FindControl("CheckBoxList1");
            CheckBoxList1.DataSource = Dcon.Tables[0];
            CheckBoxList1.DataBind();

Dcon是数据集,其值为

holiday_name

mon
tue
wed
thur

我这里没有提到checkboxlist1_selectedindex更改事件,因为在加载时它给出错误,而填充复选框列表错误是,

nullreferenceexception was unhandled by user code 

在线,

 CheckBoxList1.DataSource = Dcon.Tables[0];

我不知道数据集有数据时为什么会出错?我最初找到控制复选框列表,因为它在ajax更新面板中,而不是直接找到此控件

希望提前感谢您的建议。

1 个答案:

答案 0 :(得分:0)

如果是母版页的内容页面 然后先.. 找到主页ContentPlaceHolder而不是找到你的控件

  ContentPlaceHolder mycont = (ContentPlaceHolder)Master.FindControl("ContentPlaceHolder1");
    CheckBoxList CheckBoxList1 = (CheckBoxList)mycont.FindControl("CheckBoxList1");
    CheckBoxList1.DataSource = Dcon.Tables[0];
    CheckBoxList1.DataBind();