asp.net - ASP.net 更新面板的事件问题

标签 asp.net events updatepanel

我完全被难住了,非常感谢任何帮助。

我正在开发位于更新面板内部的用户控件。表单上有一个加载一些数据的按钮。这工作正常。

还有一个下拉框可以过滤数据。更改此设置确实会启动回发,但什么也没有发生。下拉框返回到其默认值,并且永远不会调用 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>

它当然是可见的,并且通过代码中发生问题的点进行数据绑定(bind)

<小时/>

更多信息- 在同一控件中添加了硬编码下拉列表(以排除愚蠢的数据绑定(bind)问题)和文本框。我也有同样的问题。

事件似乎没有触发,因为就 .net 而言,这些值永远不会改变。我在 page_init 和 page_load 期间检查了控件 - 该值始终相同。

事实上,该按钮有效,但其他控件不起作用,这让我认为某个地方存在 View 状态问题,但我无法完全找出导致该问题的原因。页面和面板启用了 View 状态 - 不知道是否有其他东西会覆盖/破坏它。

我有没有提到我非常讨厌更新面板?因为我非常讨厌更新面板。

最佳答案

我建议检查“DropDownList”控件中每个“ListItem”的“Value”属性。如果它们都相同,即使“Text”属性不同,那么“OnSelectedIndexChanged”根本不会触发,因为 ASP.NET 无法判断是否有任何更改(有关更多信息,请参阅 this related question信息。)

这是我的问题的真正原因,即使我也有一个“UserControl”,其中“UpdatePanel”内有一个“DropDownList”,并且“AutoPostBack”按预期触发。我认为 UpdatePanel 是罪魁祸首,但事实并非如此。我的 DropDownList 中的每个项目都具有相同的基础值“10”,即使它们具有不同的“文本”值。我将它们更改为每个都有一个唯一的值,然后允许触发 OnSelectedIndexChanged 事件,从而解决问题。

关于asp.net - ASP.net 更新面板的事件问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1829062/

相关文章:

java - MouseAdapter 中 isPopupTrigger() 的正确处理是什么

单击项目时 Jquery 工具提示不会消失

java - 每次都会调用 ContextRefreshedEvent 而不是 ContextStartedEvent

asp.net - 在 IIS7.5 上以经典模式使用 ASP.Net Web 服务进行基本身份验证

asp.net - asp.net webforms 应用程序中的多个版本的第 3 方程序集

ASP.Net MVC 帮助重构

ruby - Ruby 中的事件处理

javascript - 更新面板导致 css 问题

c# - 如何在 ASP.NET 中的初始页面加载时触发 UpdateProgress

asp.net - 控制哪些 WebMethod 在 WebService 中对外公开