ASP.Net复选框返回“是”或“否”值(而不是真/假)
我使用C#和ASP.Net 3.5,并试图从复选框中获得“是”/“否”值,而不是真/假。有一种简单的方法,还是我需要做“if”语句?ASP.Net复选框返回“是”或“否”值(而不是真/假)
完美的解决方案。谢谢Luiscencio – user279521 2010-03-12 20:00:06
不客气Mr.Dude 279521 – Luiscencio 2010-03-12 20:02:15
可以使用conditional operator:
checkbox.Checked ? "Yes" : "No"
如果你要聪明一点,你可以使用字典:
static readonly Dictionary<bool, string> BooleanNames = new Dictionary<bool, string> {
{ true, "Yes" },
{ false, "No" }
};
BooleanNames[checkbox.Checked]
但是,你真的不应该。
string YesNo = chkYesNo.Checked ? "Yes" : "No";
我相信你正在使用一个asp.net复选框控制来看,在 '选中' 属性。如果是这样,您需要声明将布尔值转换为是/否:
string yesNo = checkbox_control.Checked ? "Yes" : "No";
您可以使用三态语句来模拟所需的行为。
喜欢的东西
string answer = checkbox.Checked ? "Yes" : "No";
会做你莫属。
如果由于某种原因,您希望从复选框中获得实际的Yes/No direct(并且我完全没有理由这么做),那么您可以对组件进行子类化,而不是真/假使用字符串。似乎有点愚蠢做到这一点,虽然有效的“是”/“否”是一种人性化,因为我也没有更多的代码来维护这种方式,这是非常标准的。
只给你一个没有if语句替代(可能不是在这种情况下,最好的办法,但...):
Dictionary<Boolean, String> strings = new Dictionary<Boolean, String>();
strings.Add(true, "Yes");
strings.Add(false, "No");
然后,当你需要的值:
String yesNo = strings[checkbox.Checked];
如何添加一个扩展方法CheckBox类此:
public static class CheckBoxExtensions
{
public static string IsChecked(this CheckBox checkBox)
{
return checkBox.Checked ? "Yes" : "No";
}
}
用法:
var checkBox = new CheckBox();
checkBox.Checked = true;
Console.WriteLine(checkBox.IsChecked());
// Outputs: Yes
喜欢使用扩展方法来解决这个问题。 – 2010-03-12 20:35:43
不错=] 7654321 – Luiscencio 2010-03-12 22:12:21
我很好奇你为什么想这样做?使用布尔值处理比使用表示相同事物的字符串要容易得多。 – 2010-03-12 19:52:54
复选框的值显示在“打印此页”中,客户希望看到“是/否”而不是“真/假” – user279521 2010-03-12 19:54:32
客户喜欢“我在控制中”感觉 – Luiscencio 2010-03-12 20:03:19