我正在努力减少工作量/不必要的线,现在我将以2000条线结束。
HTML
<input runat="server" type="radio" id="radial9" value="9" name="test"/>
<label for="radial9" class="right"></label>
<input runat="server" type="radio" id="radial8" value="8" name="test"/>
<label for="radial8" class="left"></label>
<input runat="server" type="radio" id="radial7" value="7" name="test"/>
<label for="radial7" class="right"></label>
<input runat="server" type="radio" id="radial6" value="6" name="test"/>
<label for="radial6" class="left"></label>
<input runat="server" type="radio" id="radial5" value="5" name="test"/>
<label for="radial5" class="right"></label>
<input runat="server" type="radio" id="radial4" value="4" name="test"/>
<label for="radial4" class="left"></label>
<input runat="server" type="radio" id="radial3" value="3" name="test"/>
<label for="radial3" class="right"></label>
<input runat="server" type="radio" id="radial2" value="2" name="test"/>
<label for="radial2" class="left"></label>
<input runat="server" type="radio" id="radial1" value="1" name="test"/>
<label for="radial1" class="right"></label>
<input runat="server" type="radio" id="radial0" value="0" name="test"/>
<label for="radial0" class="left"></label>然后,查找选定的径向按钮的重复工作开始:
int selected;
if (radial0.Checked)
{
selected = Convert.ToInt32(radial0.Value);
}
else if (radial1.Checked)
{
selected = Convert.ToInt32(radial1.Value);
}
else if (radial2.Checked)
{
selected = Convert.ToInt32(radial2.Value);
}
else if (radial3.Checked)
{
selected = Convert.ToInt32(radial3.Value);
}
else if (radial4.Checked)
{
selected = Convert.ToInt32(radial4.Value);
}
else if (radial5.Checked)
{
selected = Convert.ToInt32(radial5.Value);
}
else if (radial6.Checked)
{
selected = Convert.ToInt32(radial6.Value);
}
else if (radial7.Checked)
{
selected = Convert.ToInt32(radial7.Value);
}
else if (radial8.Checked)
{
selected = Convert.ToInt32(radial8.Value);
}
else if (radial9.Checked)
{
selected = Convert.ToInt32(radial9.Value);
}
else
{
Label1.Text = "You selected invalid";
}我是说..。应该有一种更简单的方法,数组应该使这种方法更好,但是我找不到一种方法.(我需要将输入ID转换成一个参数值),我会有一个非常简洁的解决方案,我可以发送或制作id吗?
static int getRadialChecked(string name)
{
for (int i = 0; i < 10; i++)
{
if ((name + i).Checked)
{
return Convert.ToInt32((name + i).Value);
}
}
return 0;
} int value = getRadialChecked("radial");发布于 2018-05-13 17:13:20
将无线电按钮包装在容器控件中
<div id="radioSelections" runat="server">
<input runat="server" type="radio" id="radial9" value="9" name="test"/>
<label for="radial9" class="right"></label>
<input runat="server" type="radio" id="radial8" value="8" name="test"/>
<label for="radial8" class="left"></label>
....
</div>使用LINQ搜索单选按钮列表以获取所选控件,然后获取值。
var checkedButton = radioSelections.Controls.OfType<HtmlInputRadioButton>().FirstOrDefault(b=>b.Checked);
var selected = checkedButton?.Value;发布于 2018-05-13 18:39:36
更改函数的数据类型(添加System.Web.UI.HtmlControls;)
static int getRadialChecked(HtmlInputRadioButton[] values)
{
for (int i = 0; i < 10; i++)
{
if (values[i].Checked)
{
return Convert.ToInt32(values[i].Value);
}
}
return -1;
}-
HtmlInputRadioButton[] radialArray = { radial0, radial1, radial3, radial4, radial5, radial6, radial7, radial8, radial9 };
int value = getRadialChecked(radialArray);https://stackoverflow.com/questions/50318195
复制相似问题