UpdatePanel 中的复选框列表在选中项目时触发完整的回发

Posted

技术标签:

【中文标题】UpdatePanel 中的复选框列表在选中项目时触发完整的回发【英文标题】:Checkboxlist inside UpdatePanel triggers full postback when an item is checked 【发布时间】:2012-06-30 21:55:00 【问题描述】:

所以我有这个复选框列表,我想为其中的元素实现全选功能。我将它放置在 UpdatePanel 中,但每次单击某个项目时,都会重新加载整个页面。这是我的代码:

 <asp:UpdatePanel ID="CBLPanel" runat="server" UpdateMode="Conditional"     ChildrenAsTriggers="false">
            <ContentTemplate>
                <div class="LeftAligned">
                    <asp:Label ID="FilterLabel" runat="server" Text="Filter by:" />
                    <asp:DropDownList runat="server" ID="FilterDDL" AutoPostBack="true" OnSelectedIndexChanged="FilterDDL_SelectedIndexChanged" />
                    <asp:ImageButton ID="FB" runat="server" ImageUrl="~/images/filter.png" AlternateText="VALUE"
                        CssClass="filter_button" OnClick="FB_Click" />
                    <div onmouseout="javascript:bMouseOver=false;" onmouseover="javascript:bMouseOver=true;"
                        class="filter_div">
                        <asp:CheckBoxList AutoPostBack="true" ID="FilterCheckBoxList" ClientIDMode="Static"
                            runat="server" CssClass="filter_checklist collapsed" OnSelectedIndexChanged="FilterCheckBoxList_Selected">
                        </asp:CheckBoxList>
                    </div>
                </div>
            </ContentTemplate>
                    </asp:UpdatePanel>

虽然我应该将 ChildrenAsTriggers 设置为 false,这样我只能从代码中更新,但它似乎不起作用。

【问题讨论】:

【参考方案1】:

这看起来像一个熟悉的 .NET 错误。在 CheckBoxList 上设置 ClientIDMode=Auto 应该可以解决它

【讨论】:

从试错的日子到调试工具的诞生;我永远也猜不到。谢谢@GratzianiV。 ClientIDMode="AutoID" ?

以上是关于UpdatePanel 中的复选框列表在选中项目时触发完整的回发的主要内容,如果未能解决你的问题,请参考以下文章

当我在 Android 上滚动列表视图时复选框未选中

滚动时带有复选框的Android ListView会松动选中的项目

选中复选框时检查Android listview多个项目

如何禁用选中列表框中的复选框?

列表视图Item.Selected = false导致未选中所有复选框

带有 ASP.NET 复选框触发器的 asp:UpdatePanel