我目前将一些值传递给我的一个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";
}
答案 0 :(得分:0)
对于服务器端解决方案,最简单的方法是遍历RadioButton
列表并使用一些简单的LINQ来选择第一个可见按钮。
类似的东西:
var buttons = new []{length5yr, ...};
var firstVisibleButton = buttons.Where(b=>b.Visible).First();
firstVisibleButton.Checked = true;
上面的代码可能比任何东西都要多,但如果没有完整的代码示例,那就是我所能做的。我相信你可以弄清楚细节。上面的代码必须在隐藏/显示RadioButton
之后执行。
我应该指定您创建的列表(按钮)必须按照显示按钮的顺序才能使其正常工作。