【问题标题】:Bootstrap ASP.Net button group retain value on postbackBootstrap ASP.Net 按钮组在回发时保留值
【发布时间】:2017-10-13 10:27:52
【问题描述】:

我有一个带有三个单选按钮的 Bootstrap 按钮组。我还有一个隐藏字段,因此我可以在后面的代码中获取选定的值。按钮的代码是:

<div class="btn-group" data-toggle="buttons" id="parentofit">
    <asp:HiddenField ID="hidValue" runat="server" Value="Beginning" />
    <label class="btn btn-primary" id="label1" runat="server">
        <input type="radio" name="options" id="option1" runat="server">
        Radio 1
    </label>
    <label class="btn btn-primary" id="label2" runat="server">
        <input type="radio" name="options" id="option2" runat="server">
        Radio 2
    </label>
    <label class="btn btn-primary" id="label3" runat="server">
        <input type="radio" name="options" id="option3" runat="server">
        Radio 3
    </label>
</div>

我也有 Javascript 来设置隐藏字段:

$(document).ready(function () {
    $('.btn').click(function () {
        var parent = '#' + $(this).parent().attr('id');
        $(parent).find('input').val($(this).text());
        $(this).addClass("active").siblings().removeClass("active");
    });

当我提交页面时,隐藏字段具有正确的值。当页面重新加载时,按钮组被重置回第一个字段。

如何保留回发的价值?如何以编程方式初始设置值?

TIA

杰夫

【问题讨论】:

  • 用 RadioButton 服务器控件代替 html 控件怎么样?
  • 我试过了。还是有同样的东西。我可以将单选按钮设置为在 page_prerender 中选中,但它看起来就像其他按钮一样。另外 - 如果您查看输入,它们已经在服务器上运行。

标签: javascript c# asp.net twitter-bootstrap


【解决方案1】:

您可以在页面加载时捕获表单发布数据并手动设置单选按钮值。

if (Page.IsPostBack && Request.Form["options"] != null)
{
    HtmlInputRadioButton hirb = new HtmlInputRadioButton();
    hirb.Value = Request.Form["options"];
}

更复杂的解决方案是创建您自己的控制适配器来覆盖单选按钮的设计。

【讨论】:

  • 谢谢。但不会设置按钮。我可以保存值,但显示按钮会重置。
  • 您是否在代码中的某处设置值?如果是这样,请确保您在 if (Page.IsPostBack == false) { //set data here } 内这样做
  • 我已经尝试过设置单选按钮和设置隐藏字段。似乎每次回发时按钮都会重置。
猜你喜欢
  • 2012-05-03
  • 1970-01-01
  • 2016-11-23
  • 1970-01-01
  • 2015-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-01
相关资源
最近更新 更多