【发布时间】:2010-12-22 04:37:04
【问题描述】:
我对此完全感到困惑,非常感谢任何帮助。
我正在开发一个位于更新面板内的用户控件。表单上有一个按钮可以加载一些数据。这工作正常。
还有一个用于过滤数据的下拉框。更改此设置确实会启动回发,但没有任何反应。下拉框回到它的默认值,永远不会调用 OnSelectedIndexChanged 函数。
我在 page_prerender 和 page_preload 中设置了断点,并且两者都被击中,回发肯定会发生。永远不会命中带有 dropdownGroup_changed 函数的断点。
删除更新面板解决了这个问题,但是它破坏了页面的其余部分,所以我不能将它用于测试以外的任何东西。
我还验证了我的预渲染/页面加载中没有任何东西会重置页面的状态。
这里是更新面板代码:
<asp:UpdatePanel ID="UpdatePanel6" runat="server" ChildrenAsTriggers="true" UpdateMode="Conditional" >
<ContentTemplate>
<ucControlName:ControlName ID="ControlName1" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
这是有问题的下拉菜单 - 它位于用户控件内部
<asp:DropDownList ID="dropdownGroup" runat="server" Visible="false" AutoPostBack="true" OnSelectedIndexChanged="dropdownGroup_changed"></asp:DropDownList>
在代码中出现问题的地方,它当然是可见的和数据绑定的
更多信息- 将硬编码下拉列表(以排除愚蠢的数据绑定问题)和文本框添加到同一个控件。我也有同样的问题。
似乎没有触发该事件,因为就 .net 而言,值永远不会改变。我在 page_init 和 page_load 期间检查了控件 - 值始终相同。
按钮工作但其他控件不起作用的事实并没有让我认为这里某处存在视图状态问题,但我无法完全找出导致它的原因。为页面和面板启用了 Viewstate - 不知道是否有其他任何东西可以覆盖/破坏它。
我有没有提到我非常讨厌更新面板?因为我讨厌充满激情的更新面板。
【问题讨论】:
-
我目前正在努力解决似乎与您完全相同的问题和场景(即下拉列表的 onselectionchanged 未在更新面板内的用户控件中触发,但自动回发正在触发)。我一直在这里查看,希望有人提供一些有用的信息。如果我自己找到了有用的东西,我一定会发布它。
-
我找到了问题的答案。见下文 (stackoverflow.com/questions/1829062/…)
标签: asp.net events updatepanel