gpt4 book ai didi

c# - ASP.NET 4.0 单选按钮选中更改事件仅触发一次

转载 作者:太空狗 更新时间:2023-10-30 00:05:47 26 4
gpt4 key购买 nike

我有两个单选按钮都设置为更新面板的异步触发器,问题是第一次单击时会触发 CheckedChanged 事件,但无论单击哪个单选按钮,事件都不会再次触发。

标记:

<asp:RadioButton ID="rdoDeliveryBilling" runat="server" Checked="true" GroupName="DeliveryAddress" Text="Deliver to this address" AutoPostBack="true" OnCheckedChanged="rdoDelivery_CheckedChanged" />
<asp:RadioButton ID="rdoDeliveryShipping" runat="server" GroupName="DeliveryAddress" Text="Deliver to a different address" AutoPostBack="true" OnCheckedChanged="rdoDelivery_CheckedChanged" />
<asp:UpdatePanel ID="panDeliveryAddress" runat="server">
<ContentTemplate>
...delivery details form controls and validators goes here...
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="rdoDeliveryBilling" EventName="CheckedChanged" />
<asp:AsyncPostBackTrigger ControlID="rdoDeliveryShipping" EventName="CheckedChanged" />
</Triggers>
</asp:UpdatePanel>

代码:

protected void rdoDelivery_CheckedChanged(object sender, EventArgs e)
{
...only code that enables/disables the delivery form controls and validators goes here...
}

我在 rdoDelivery_CheckedChanged 中设置了一个断点,它只在第一次命中。

有什么想法吗?

最佳答案

查看源代码(在浏览器中),ASP.NET 仅为可能回发的 RadioButton 控件生成回发函数 __doPostBack

第一个 RadioButton 控件无法回发(因为它已经被选中),因此不会生成 __doPostBack

解决方法是将两个 RadioButton 控件添加到另一个 UpdatePanel,将 UpdateMode 设置为 Always。这将导致 RadioButtons 被更新(每当它们触发另一个 UpdatePanel),将 __doPostBack 函数添加到取消选择的 RadioButton

示例

<asp:UpdatePanel ID="UpdatePanelCheckBoxes" runat="server" UpdateMode="Always">
<ContentTemplate>
<asp:RadioButton ID="rdoDeliveryBilling" runat="server" Checked="true" GroupName="DeliveryAddress" Text="Deliver to this address" AutoPostBack="true" OnCheckedChanged="rdoDelivery_CheckedChanged" />
<asp:RadioButton ID="rdoDeliveryShipping" runat="server" GroupName="DeliveryAddress" Text="Deliver to a different address" AutoPostBack="true" OnCheckedChanged="rdoDelivery_CheckedChanged" />
</ContentTemplate>
</asp:UpdatePanel>

希望这对您有所帮助。

关于c# - ASP.NET 4.0 单选按钮选中更改事件仅触发一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8050296/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com