首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#求取径向列表选项的有效方法

C#求取径向列表选项的有效方法
EN

Stack Overflow用户
提问于 2018-05-13 16:22:29
回答 2查看 59关注 0票数 1

我正在努力减少工作量/不必要的线,现在我将以2000条线结束。

HTML

代码语言:javascript
复制
    <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>

然后,查找选定的径向按钮的重复工作开始:

代码语言:javascript
复制
    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吗?

代码语言:javascript
复制
static int getRadialChecked(string name)
{
    for (int i = 0; i < 10; i++)
    {
        if ((name + i).Checked)
        {
            return Convert.ToInt32((name + i).Value);
        }
    }

    return 0;
}
代码语言:javascript
复制
    int value = getRadialChecked("radial");
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-13 17:13:20

将无线电按钮包装在容器控件中

代码语言:javascript
复制
    <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搜索单选按钮列表以获取所选控件,然后获取值。

代码语言:javascript
复制
        var checkedButton = radioSelections.Controls.OfType<HtmlInputRadioButton>().FirstOrDefault(b=>b.Checked);
        var selected = checkedButton?.Value;
票数 0
EN

Stack Overflow用户

发布于 2018-05-13 18:39:36

更改函数的数据类型(添加System.Web.UI.HtmlControls;)

代码语言:javascript
复制
static int getRadialChecked(HtmlInputRadioButton[] values)
{
    for (int i = 0; i < 10; i++)
    {
        if (values[i].Checked)
        {
            return Convert.ToInt32(values[i].Value);
        }
    }
    return -1;
}

-

代码语言:javascript
复制
HtmlInputRadioButton[] radialArray = { radial0, radial1, radial3, radial4, radial5, radial6, radial7, radial8, radial9 };
int value = getRadialChecked(radialArray);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50318195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档