我试图将选中的单选按钮的值转换为“out”变量,然后将其作为true或false传递。
但它总是返回假我已经尝试了很多不同的方式,这就是我。
if (rad_Security_Risk.SelectedItem.Value == "NO")
{
if (bool.TryParse(rad_Security_Risk.SelectedValue, out risk))
{
risk = false;
obj.Security_Risk = risk;
}
}
if (rad_Security_Risk.SelectedItem.Value == "YES")
{
if (bool.TryParse(rad_Security_Risk.SelectedValue, out risk))
{
risk = true;
obj.Security_Risk = risk;
}
}
当我选择YES时,它总是假的?
答案 0 :(得分:1)
<asp:RadioButtonList ID="rblList" runat="server">
<asp:ListItem Text="True" Value="True" Selected="True"></asp:ListItem>
<asp:ListItem Text="False" Value="False"></asp:ListItem>
</asp:RadioButtonList>
var a = Convert.ToBoolean(rblList.SelectedValue);
或
var a = Convert.ToInt16(rblList.SelectedValue);
var retValue = string.Empty;
switch (a)
{
case 0:
//"you want have"
break;
case 1:
//"you want have"
break;
case 2:
//"you want have"
break;
default:
//"you want have"
break;
}
或
if (a == 0)
{
//"you want have"
}
else if (a == 1)
{
//"you want have"
}
else if (a == 2)
{
//"you want have"
}
else
{
//"you want have"
}
答案 1 :(得分:0)
你的代码没有任何意义 - 它执行了大量的冗余分配。此外,Boolean.TryParse无法解析&#34; YES&#34;和&#34;否&#34;到true
和false
。 examples in the documentation表明这一点并没有做到这一点。它只会解析与Boolean.TrueString或Boolean.FalseString
可以大大简化:
if (rad_Security_Risk.SelectedItem.Value == "NO")
{
obj.Security_Risk = false;
}
else if (rad_Security_Risk.SelectedItem.Value == "YES")
{
obj.Security_Risk = true;
}
else
{
// Is there a possibility that the value can be something
// other than YES or NO?
throw new Exception ("Undefined behaviour!");
}
答案 2 :(得分:0)
<asp:RadioButtonList ID="rblTest" runat="server" RepeatDirection="Horizontal" >
<asp:ListItem Value="0">
No
</asp:ListItem>
<asp:ListItem Value="1">
Yes
</asp:ListItem>
</asp:RadioButtonList>
然后你可以使用你的代码bool.TryParse并使用SelectedItem.Text检查你的项目
答案 3 :(得分:0)
您无法将"YES"
解析为true
或"NO"
至false
正如Habib指出您必须使用
True,true
的 true
解析
False,false
为布尔false
请改用此代码
if (rad_Security_Risk.SelectedItem.Value == "NO")
{
if (bool.TryParse("False", out risk))
{
risk = false;
obj.Security_Risk = risk;
}
}
if (rad_Security_Risk.SelectedItem.Value == "YES")
{
if (bool.TryParse("True", out risk))
{
risk = true;
obj.Security_Risk = risk;
}
}