始终选择顶部(条件)单选按钮

时间:2011-11-08 19:40:37

标签: c# asp.net radio-button selected

我目前将一些值传递给我的一个ascx.cs文件,它会显示某些单选按钮,具体取决于发送的值。单选按钮在.ascx方面实例化:

<asp:RadioButton ID="length5yr" GroupName="SubLength" runat="server" Visible ="false"
             /> 
            <asp:label runat="server" id="Label5yr" Visible="false" style="width: 300px">
            </asp:label>


             <asp:RadioButton ID="length3yr" GroupName="SubLength" runat="server"  Visible ="false"
             />
            <asp:label runat="server" id="Label3yr" Visible="false" style="width: 300px">
            </asp:label>


     <asp:RadioButton ID="length2yr" GroupName="SubLength" runat="server"  Visible ="false"
             />
            <asp:label runat="server" id="Labelyr2" Visible="false" style="width: 300px">
            </asp:label>


     <asp:RadioButton ID="length1yr" GroupName="SubLength" runat="server"  Visible ="false"
             />
            <asp:label runat="server" id="Label1yr" Visible="false" style="width: 300px">

            </asp:label>

     <asp:RadioButton ID="lengthQuarterly" GroupName="SubLength" runat="server"  Visible ="false"
             />
            <asp:label runat="server" id="labelQuarterly" Visible="false" style="width: 300px">
            </asp:label>

    <asp:RadioButton ID="lengthMonthly" GroupName="SubLength" runat="server"  Visible ="false"
             />
            <asp:label runat="server" id="labelMonthly" Visible="false" style="width: 300px">
            </asp:label>

我希望最终显示的第一个/最顶层的单选按钮被检查。我已经能够检查最后一个单选按钮了(这也给了我其他问题) - 但是如何检查最上面的一个呢?

这是我如何确定显示哪个单选按钮的代码 - 我只显示了一个选项,只是为了让代码更容易阅读。

 foreach (Dictionary<string, string> d in orderOptions)
        {
            if (d["length"] == "one")
            {
                length1yr.Visible = true;
                price1yr = d["price"];
                rate1yr = d["rate"];
                issues1yr = d["issues"];
                premium1yr = d["premium"];
                Label1yr.Text = d["description"] + "<br><br>";
                Label1yr.Visible = true;
                SubLength1yr = "1 year";

            }

1 个答案:

答案 0 :(得分:0)

对于服务器端解决方案,最简单的方法是遍历RadioButton列表并使用一些简单的LINQ来选择第一个可见按钮。

类似的东西:

var buttons = new []{length5yr, ...};
var firstVisibleButton = buttons.Where(b=>b.Visible).First();
firstVisibleButton.Checked = true;

上面的代码可能比任何东西都要多,但如果没有完整的代码示例,那就是我所能做的。我相信你可以弄清楚细节。上面的代码必须在隐藏/显示RadioButton之后执行

我应该指定您创建的列表(按钮必须按照显示按钮的顺序才能使其正常工作。