【问题标题】:Radiobutton list auto postback单选按钮列表自动回发
【发布时间】:2010-06-07 21:06:02
【问题描述】:

好的,这对我来说很痛苦,因为是的,在经典的 ASP 时代之后,我一直在编写 ASP.NET。我已经失去了常规 HTML 控件的方式。

所以,这是我的场景。

1) 我在页面上有一个单选按钮列表,常规的旧 HTML 按钮:

<div id="selectOptions">
    <form action="Checkout.aspx" method="post" target="_self">
 <ul>
     <li><label><input type="radio" name="rbRewardsSelectionGroup" id="rbtNoRewardOption" checked="checked" value="0" />None</label></li>

     <li><label><input type="radio" name="rbRewardsSelectionGroup" value='1' />Free Shipping</label></li>

     <li><label><input type="radio" name="rbRewardsSelectionGroup" value='2' />$100 Store Credit</label></li>

     <li><label><input type="radio" name="rbRewardsSelectionGroup" value='3' />$250 Store Credit</label></li>

     <li><label><input type="radio" name="rbRewardsSelectionGroup" value='4' />$500 Stored Credit</label></li>
 </ul>
    </form>
</div>

2)如果选择了这些单选按钮中的任何一个,即使是默认选择的单选按钮,我也需要添加一些 javascript 来强制回发

3) 我尝试添加一个表单并将其包裹在代码周围。我不知道这是否可行,因为我认为 ASP.NET 不会让您在一个页面上拥有多个表单......或者也许每个人都是这样?

4) 可以这么说。好的,所以我单击单选按钮。我向 Checkout.aspx 发送一个请求,然后在代码隐藏中我可以获取该数据并执行 Request["rbRewardsSelectionGroup"] 以获取对该单选按钮组的引用,然后执行我的服务器端值检查......不管我需要做的。

我想我的问题是我目前的设置方式是否正确?除了使用基于 ASP.NET 的控件之外,我相信我已经掌握了整体概念。

我不想解释为什么我不为这段特定的代码使用 ASP.NET 控件。

【问题讨论】:

    标签: asp.net html


    【解决方案1】:

    2) 使用 jquery,监听单选按钮上的 change 事件并提交其父表单:

    $("input[@name='rbRewardsSelectionGroup']").change(function(){
        $(this).parents('form').submit();
    });
    

    3) 在 asp.net 中只能有一个带有 runat="server" 属性的表单

    4) 是的,使用 Request.Form["rbRewardsSelectiongroup"] 来获取选择的值。

    【讨论】:

    • 感谢您验证这一切。是的,它是 runat=server,忘记了...关于多表单问题。
    猜你喜欢
    • 2014-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多