C# 获取一组HtmlInputRadioButton控件的选定值
使用C# 获取一组HtmlInputRadioButton控件的选定值,c#,asp.net,webforms,C#,Asp.net,Webforms,使用RadioButtonList控件时,我可以通过以下方式访问codebehind中的选定值: rbMyButtons.SelectedValue 但是,我希望使用HtmlInputRadioButton控件,因为这些控件使我能够更好地控制呈现的标记。如果我使用的是列表,那么据我所知,我必须这样做: if (rbMyButtonsOption1.Checked) { ... } else if (rbMyButtonsOption2.Checked) { ... } else
RadioButtonList
控件时,我可以通过以下方式访问codebehind中的选定值:
rbMyButtons.SelectedValue
但是,我希望使用HtmlInputRadioButton
控件,因为这些控件使我能够更好地控制呈现的标记。如果我使用的是
列表,那么据我所知,我必须这样做:
if (rbMyButtonsOption1.Checked)
{
...
}
else if (rbMyButtonsOption2.Checked)
{
...
}
else if ...
是否有一种方法可以模拟
RadioButtonList.SelectedValue的行为而不使用Request.Form[“name”]
?您可以使用LINQ模拟此行为:
var radioButtons = new[] { rbMyButtonsOption1, rbMyButtonsOption2 };
var checkedRadioButton = radioButtons.FirstOrDefault(i => i.Checked);
if (checkedRadioButton != null)
{
// do something...
}
可以使用LINQ模拟此行为:
var radioButtons = new[] { rbMyButtonsOption1, rbMyButtonsOption2 };
var checkedRadioButton = radioButtons.FirstOrDefault(i => i.Checked);
if (checkedRadioButton != null)
{
// do something...
}
我会这样做:
首先,将Html控件包装在面板或类似的分组对象中(面板将呈现为div):
最后,您可以轻松获得该值:
var selectedValue = ButtonList.Controls.GetRadioButtonValue();
我会这样做:
首先,将Html控件包装在面板或类似的分组对象中(面板将呈现为div):
最后,您可以轻松获得该值:
var selectedValue = ButtonList.Controls.GetRadioButtonValue();
我做了一些搜索来找到这个,所以我认为它可能是有用的,即使这个问题已经超过1年了
我刚刚遇到这个问题。我需要使用[input type=“radio”runat=“server”…],因为我必须在每个选择中包含额外的HTML“data-*”属性
我在这里使用了两个答案的组合来提供一个帮助我的解决方案
我的HTML看起来像:
<div id="pnlOpts" runat="server">
<input type="radio" name="rblReason" runat="server" value="1" /> <label>Opt 1</label><br />
<input type="radio" name="rblReason" runat="server" value="3" data-att="1" /> <label>Supplied Reason 1 </label><br />
<input type="radio" name="rblReason" runat="server" value="3" data-att="2" /> <label>Supplied Reason 2 </label><br />
<input type="radio" name="rblReason" runat="server" value="3" data-att="3" /> <label>Supplied Reason 3 </label><br />
</div>
if(pnlOpts.Controls.OfType<HtmlInputRadioButton>().Any(a=>a.Checked))
{
HtmlInputRadioButton selected = pnlOpts.Controls.OfType<HtmlInputRadioButton>().Where(a => a.Checked).FirstOrDefault();
var btnValue = selected.Value;
var dataAttVal = selected.Attributes["data-att"];
...
}
选项1
提供原因1
提供原因2
提供原因3
我的代码如下所示:
<div id="pnlOpts" runat="server">
<input type="radio" name="rblReason" runat="server" value="1" /> <label>Opt 1</label><br />
<input type="radio" name="rblReason" runat="server" value="3" data-att="1" /> <label>Supplied Reason 1 </label><br />
<input type="radio" name="rblReason" runat="server" value="3" data-att="2" /> <label>Supplied Reason 2 </label><br />
<input type="radio" name="rblReason" runat="server" value="3" data-att="3" /> <label>Supplied Reason 3 </label><br />
</div>
if(pnlOpts.Controls.OfType<HtmlInputRadioButton>().Any(a=>a.Checked))
{
HtmlInputRadioButton selected = pnlOpts.Controls.OfType<HtmlInputRadioButton>().Where(a => a.Checked).FirstOrDefault();
var btnValue = selected.Value;
var dataAttVal = selected.Attributes["data-att"];
...
}
if(pnlOpts.Controls.OfType().Any(a=>a.Checked))
{
HtmlInputRadioButton selected=pnlOpts.Controls.OfType()。其中(a=>a.Checked.FirstOrDefault();
var BTN值=所选的.Value;
var dataAttVal=selected.Attributes[“data att”];
...
}
我做了一些搜索来找到这个问题,所以我认为它可能有用,即使这个问题已经有一年多的历史了
我刚刚遇到这个问题。我需要使用[input type=“radio”runat=“server”…],因为我必须在每个选择中包含额外的HTML“data-*”属性
我在这里使用了两个答案的组合来提供一个帮助我的解决方案
我的HTML看起来像:
<div id="pnlOpts" runat="server">
<input type="radio" name="rblReason" runat="server" value="1" /> <label>Opt 1</label><br />
<input type="radio" name="rblReason" runat="server" value="3" data-att="1" /> <label>Supplied Reason 1 </label><br />
<input type="radio" name="rblReason" runat="server" value="3" data-att="2" /> <label>Supplied Reason 2 </label><br />
<input type="radio" name="rblReason" runat="server" value="3" data-att="3" /> <label>Supplied Reason 3 </label><br />
</div>
if(pnlOpts.Controls.OfType<HtmlInputRadioButton>().Any(a=>a.Checked))
{
HtmlInputRadioButton selected = pnlOpts.Controls.OfType<HtmlInputRadioButton>().Where(a => a.Checked).FirstOrDefault();
var btnValue = selected.Value;
var dataAttVal = selected.Attributes["data-att"];
...
}
选项1
提供原因1
提供原因2
提供原因3
我的代码如下所示:
<div id="pnlOpts" runat="server">
<input type="radio" name="rblReason" runat="server" value="1" /> <label>Opt 1</label><br />
<input type="radio" name="rblReason" runat="server" value="3" data-att="1" /> <label>Supplied Reason 1 </label><br />
<input type="radio" name="rblReason" runat="server" value="3" data-att="2" /> <label>Supplied Reason 2 </label><br />
<input type="radio" name="rblReason" runat="server" value="3" data-att="3" /> <label>Supplied Reason 3 </label><br />
</div>
if(pnlOpts.Controls.OfType<HtmlInputRadioButton>().Any(a=>a.Checked))
{
HtmlInputRadioButton selected = pnlOpts.Controls.OfType<HtmlInputRadioButton>().Where(a => a.Checked).FirstOrDefault();
var btnValue = selected.Value;
var dataAttVal = selected.Attributes["data-att"];
...
}
if(pnlOpts.Controls.OfType().Any(a=>a.Checked))
{
HtmlInputRadioButton selected=pnlOpts.Controls.OfType()。其中(a=>a.Checked.FirstOrDefault();
var BTN值=所选的.Value;
var dataAttVal=selected.Attributes[“data att”];
...
}
这正是我开始思考的方向。我可能会把面板换成一个占位符,但除此之外,谢谢你的回答。这与我开始思考的思路非常一致。我可能会把面板换成占位符,但除此之外,谢谢你的回答。