Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 在Tabcontainer中放置combobox时,Get`Object reference未设置为对象的实例`error_Asp.net - Fatal编程技术网

Asp.net 在Tabcontainer中放置combobox时,Get`Object reference未设置为对象的实例`error

Asp.net 在Tabcontainer中放置combobox时,Get`Object reference未设置为对象的实例`error,asp.net,Asp.net,我有一个Ajaxtoolkit Tabcontainer,它有两个选项卡,其中启用的第二个选项卡为False。 我在第二个选项卡中放置了一个组合框AjaxToolikit控件。但当服务器在IE浏览器中发生回发时,我得到以下错误。 但在Firefox中,我没有问题,每件事都正常工作。 怎么了 这是我的代码: <ul> <li> <asp:ImageButton ID="BtnNew" Cau

我有一个Ajaxtoolkit Tabcontainer,它有两个选项卡,其中启用的第二个选项卡为False。 我在第二个选项卡中放置了一个组合框AjaxToolikit控件。但当服务器在IE浏览器中发生回发时,我得到以下错误。 但在Firefox中,我没有问题,每件事都正常工作。 怎么了

这是我的代码:

     <ul>
          <li>
                        <asp:ImageButton ID="BtnNew" CausesValidation="false" runat="server" ImageUrl="~/CssImages/new_document.png"
                            ToolTip="New" Width="20px" OnClick="BtnNew_Click" /></li>
</ul>


 <cc1:TabContainer ID="TabContainer1" runat="server">
    <cc1:TabPanel runat="server" ID="Tab1" HeaderText="xx">
    <ContentTemplate>
    xx
    </ContentTemplate>
    </cc1:TabPanel>
    <cc1:TabPanel runat="server" ID="TabPanel1" HeaderText="yy"  Enabled="false">
    <ContentTemplate>
    dsds <cc1:ComboBox ID="ComboBox1" runat="server">
        <asp:ListItem>loblob</asp:ListItem>
        </cc1:ComboBox>
    </ContentTemplate>

    </cc1:TabPanel>
    </cc1:TabContainer>

我相信IE不会提交给服务器禁用的表单元素以及禁用容器中的元素。有很多方法可以解决这个问题。最简单的方法是禁用组合框控件,并使用父选项卡控件启用它。 更一般的决定是修复AjaxControlToolkit库中的组合框源代码。为此,您需要下载库源代码并更改
Server/AjaxControlToolkit/ComboBox/ComboBox.cs
文件中
LoadPostData
方法的第一行,如下所示:

protected virtual bool LoadPostData(string postDataKey, NameValueCollection postCollection)
{
    if (!Enabled || postCollection.GetValues(HiddenFieldControl.UniqueID) == null)
        return false;

    //...
}

我相信IE不会提交给服务器禁用的表单元素以及禁用容器中的元素。有很多方法可以解决这个问题。最简单的方法是禁用组合框控件,并使用父选项卡控件启用它。 更一般的决定是修复AjaxControlToolkit库中的组合框源代码。为此,您需要下载库源代码并更改
Server/AjaxControlToolkit/ComboBox/ComboBox.cs
文件中
LoadPostData
方法的第一行,如下所示:

protected virtual bool LoadPostData(string postDataKey, NameValueCollection postCollection)
{
    if (!Enabled || postCollection.GetValues(HiddenFieldControl.UniqueID) == null)
        return false;

    //...
}

我遇到了这个问题,尽管我没有使用任何隐藏的面板/控件。 事实证明,后面的designer.cs正在为我生成ComboBox控件,尽管它们在.aspx中被注释掉了

删除我注释掉的实验/提醒代码,一切正常


生成的控件就像是隐藏的一样——回发时会弹出相同的异常。

我遇到了这个问题,尽管我没有使用任何隐藏的面板/控件。 事实证明,后面的designer.cs正在为我生成ComboBox控件,尽管它们在.aspx中被注释掉了

删除我注释掉的实验/提醒代码,一切正常


生成的控件就像被隐藏一样--回发时会弹出相同的异常。

发布代码将极大地帮助您获得答案。发布代码将极大地帮助您获得答案。