【问题标题】:HTML input type radio button not showing selection on page loadHTML 输入类型单选按钮未在页面加载时显示选择
【发布时间】:2017-02-23 18:42:36
【问题描述】:

我一直在尝试根据页面加载时数据库中的值来选择正确的输入类型单选按钮。它应该显示选定的相应按钮,例如。如果文件类型为“分隔”,则应选择分隔按钮。我已经验证了它背后的代码可以正常工作。我还检查了显示checked="checked"的页面源,但按钮仍然没有明显地显示为被选中。我用普通的 asp.RadioButton 试过了,效果很好,为什么在这里不起作用? 后面的代码运行在 OnInit 方法中。

HTML

<div class="form__group">
    <asp:label class="form__label" id="switchLabel_FileType" runat="server">File Type</asp:label>
    <div id="FileType" class="btn-group" data-toggle="buttons" style="width:100%">
            <label class="btn btn-primary btn-small active" style="width:33.3%" >
                <input type="radio" name="options" id="label_Delimited" autocomplete="off" runat="server" style="width:33%" /> Delimited
            </label>

            <label class="btn btn-primary btn-small active" style="width:33.3%" >
                <input type="radio" name="options" id="label_Excel" autocomplete="off" runat="server" style="width:33%"/> Excel
            </label>
            <label class="btn btn-primary btn-small active" style="width:33.3%">
                <input type="radio" name="options" id="label_FixedWidth" autocomplete="off" runat="server" style="width:33%"/> Fixed Width
            </label>
    </div> 
</div>

C#

            string fType = row[Constants.FILE_TYPE].ToString();
            if (fType == Constants.FILETYPE_DELIMITED)
            {
                label_Delimited.Checked = true;
            }

            else if (fType == Constants.FILETYPE_XLS)
            {
                label_Excel.Checked = true;
            }

            else if (fType == Constants.FILETYPE_FIXEDWIDTH)
            {
                label_FixedWidth.Checked = true;
            }

【问题讨论】:

  • 您介意发布一个相关的渲染 HTML 示例吗?
  • 这样行吗?
  • 你试过不同的浏览器吗?
  • 是的,我在 IE 和 Chrome 中都试过了。
  • 这是它在页面源中显示的内容。

标签: c# html asp.net webforms


【解决方案1】:

由于data-toggle="buttons" 复选框的工作方式是这样,您必须添加活动类以激活该按钮

<asp:label class="form__label" id="switchLabel_FileType" runat="server">File Type</asp:label>
<div id="FileType" class="btn-group" data-toggle="buttons" style="width:100%">
            <asp:label class="btn btn-primary btn-small" id="Label1"  runat="server">
                <input type="radio" name="options"    style="width:33%" /> Delimited
            </asp:label>


            <asp:label class="btn btn-primary btn-small" id="Label2"  runat="server">
            <input type="radio" name="options"   style="width:33%"/> Excel
            </asp:label>


            <asp:label class="btn btn-primary btn-small" id="Label3"  runat="server">
            <input type="radio" name="options"  style="width:33%"/> Fixed Width
            </asp:label> </div> 

在cs中你可以设置按钮

        Label1.Attributes.Add("Class", "btn btn-primary btn-small active");
        Label2.Attributes.Add("Class", "btn btn-primary btn-small");
        Label3.Attributes.Add("Class", "btn btn-primary btn-small");

【讨论】:

  • 删除 data-toggle="button" 会将其转换为常规单选按钮。
  • 我希望不要这样做,因为这些圆圈的按钮看起来不太好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-09-23
  • 1970-01-01
  • 2018-12-21
  • 1970-01-01
  • 2016-04-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多