Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.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
C# 创建的复选框列表背后的代码不会在UpdatePanel中的SelectedIndex更改时触发_C#_Asp.net_Ajax_Updatepanel - Fatal编程技术网

C# 创建的复选框列表背后的代码不会在UpdatePanel中的SelectedIndex更改时触发

C# 创建的复选框列表背后的代码不会在UpdatePanel中的SelectedIndex更改时触发,c#,asp.net,ajax,updatepanel,C#,Asp.net,Ajax,Updatepanel,我在代码隐藏中(在页面加载中)创建了许多复选框列表控件,这些控件被放入UpdatePanel中。UpdatePanel是为UpdateMode=“always”设置的,因此如果我理解正确,则此UpdatePanel中的每次回发都应该触发对整个UpdatePanel的回发(这是我想要的) 简化的aspx标记: <asp:UpdatePanel ID="updatepanel_profiles_manualdata" runat="server"> <ContentTemplate

我在代码隐藏中(在页面加载中)创建了许多复选框列表控件,这些控件被放入UpdatePanel中。UpdatePanel是为UpdateMode=“always”设置的,因此如果我理解正确,则此UpdatePanel中的每次回发都应该触发对整个UpdatePanel的回发(这是我想要的)

简化的aspx标记:

<asp:UpdatePanel ID="updatepanel_profiles_manualdata" runat="server">
<ContentTemplate>
<div id="cbl_container" runat="server">
</div>
</ContentTemplate>
</asp:UpdatePanel>    
挣扎

  • 我尝试在我的cbl_manual_clickEvent中设置一个断点-从未到达该断点,但页面编译时没有出现错误
  • 我在同一UpdatePanel中有另一个复选框列表,在标记中初始化,因此OnSelectedIndex事件绑定在标记中。回邮在这里很好用。但是,我需要从代码隐藏创建第二个复选框列表,因为数量取决于数据库中的一些数据
  • 我尝试在UpdatePanel中设置ChildrenAsTriggers=“true”,以及更改UpdateMode和定义触发器,但没有任何运气
    我错过了什么?提前感谢所有提示或建议

    您是否尝试过检查框列表的
    AutoPostBack=true

    您是否尝试过检查框列表的
    AutoPostBack=true
    aspx文件:

    <asp:UpdatePanel ID="updatepanel_profiles_manualdata" runat="server">
    <ContentTemplate>
    <div id="cbl_container" runat="server">
    <asp:CheckBoxList ID="CheckBoxList1" AutoPostBack="true" runat="server"></asp:CheckBoxList>
    </div>
    </ContentTemplate>
    </asp:UpdatePanel>   
    
    #更新1 试试这个 aspx文件:

    <asp:UpdatePanel ID="updatepanel_profiles_manualdata" runat="server">
    <ContentTemplate>
    <div id="cbl_container" runat="server">
    <asp:CheckBoxList ID="CheckBoxList1" AutoPostBack="true" runat="server"></asp:CheckBoxList>
    </div>
    </ContentTemplate>
    </asp:UpdatePanel>   
    
    #更新1

    post您是如何在第页调用此函数的?请尝试在这种情况下调用此函数!是的,我第一次调用这个函数!除了在那里创建的一些其他控件之外,Page.IsPostBack也可以。请尝试将事件处理程序分配到条件之外!Page.IsPostBackMy控件仅在第一次执行页面时调用的函数中创建(因此在!Page.IsPostBack中)。您建议在该函数之后,我尝试查找那些已创建的控件,并将OnSelectedIndexChanged事件分配给它们?(只是想让你做对!)在第页发布你是如何调用这个函数的?试着在这种情况下调用这个函数!是的,我第一次调用这个函数!除了在那里创建的一些其他控件之外,Page.IsPostBack也可以。请尝试将事件处理程序分配到条件之外!Page.IsPostBackMy控件仅在第一次执行页面时调用的函数中创建(因此在!Page.IsPostBack中)。您建议在该函数之后,我尝试查找那些已创建的控件,并将OnSelectedIndexChanged事件分配给它们?(只是想让你做对!)是的,正如后面的代码所示。。mycbl.AutoPostBack=true;它有点像一个回发,但它不会触发它应该触发的事件。它明确定义了AutoPopBuffe=真,这不是一个答案,你应该认为它是一个评论。mycbl.AutoPostBack=true;它有点像一个回发,但它不会触发它应该触发的事件。它清楚地定义了AutoPopBuffe=真的,这不是一个答案,你应该认为它是一个评论StaskFooad不允许我评论(我已经对此评论了,是不是被删除了?但是……)这对我来说是行不通的。我没有办法在代码隐藏中创建复选框列表控件。在标记中构建一个复选框列表并将其连接起来不是问题。为UpdatePanel动态创建它们,然后将它们与它们的事件关联起来,这对我没有什么帮助。做了一个变通办法,但感谢你的努力@Feras。(我已经对此发表了评论,这个被删除了吗?但是…)这对我不起作用。我没有办法在代码隐藏中创建复选框列表控件。在标记中构建一个复选框列表并将其连接起来不是问题。为UpdatePanel动态创建它们,然后将它们与它们的事件关联起来,这对我没有什么帮助。做了一个变通办法,但谢谢你的努力@Feras。
    protected void Page_Load(object sender, EventArgs e)
    {
    CheckBoxList1.SelectedIndexChanged += new EventHandler(cbl_manual_clickEvent);
    DataTable dt3 = get_cbl_data(someparameter);
    CheckBoxList1.DataSource = dt3;
    CheckBoxList1.DataTextField = "Title";
    CheckBoxList1.DataValueField = "ID";
    CheckBoxList1.AutoPostBack = true;
    CheckBoxList1.DataBind();
    
    }