ASP.Net复选框返回“是”或“否”值(而不是True / False)

时间:2010-03-12 19:40:52

标签: c# asp.net-3.5

我正在使用C#和ASP.Net 3.5,并尝试从复选框中获取“是”/“否”值,而不是True / False。有简单的方法还是我需要做“if”语句?

8 个答案:

答案 0 :(得分:10)

一定要试试这个:

string doesThisWork = chkBox.Checked ? "Yes":"No"

more info...

答案 1 :(得分:5)

如何为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

答案 2 :(得分:1)

string YesNo = chkYesNo.Checked ? "Yes" : "No";

答案 3 :(得分:1)

您可以使用三元语句模拟所需的行为。

这样的东西

string answer = checkbox.Checked ? "Yes" : "No";

你会做得很完美。

如果由于某种原因你想从复选框中获得实际的Yes / No direct(我根本没有看到这个原因)那么你可以继承组件而不是true / false它需要字符串。看起来有点愚蠢,尽管有效的“是”/“否”是人性化的,对我而言,维持这种方式的代码较少,这是相当标准的。

答案 4 :(得分:0)

您可以使用conditional operator

checkbox.Checked ? "Yes" : "No"

如果你想聪明,你可以使用字典:

static readonly Dictionary<bool, string> BooleanNames = new Dictionary<bool, string> { 
    { true,  "Yes" },
    { false, "No"  }
};

BooleanNames[checkbox.Checked]

然而,你真的不应该。

答案 5 :(得分:0)

我认为您正在使用asp.net复选框控件并查看“已检查”属性。如果是这样,您需要一个语句将布尔值转换为是/否:

string yesNo = checkbox_control.Checked ? "Yes" : "No";

答案 6 :(得分:0)

只是给你一个no if语句替代(在这种情况下可能不是最好的方法,但是......):

Dictionary<Boolean, String> strings = new Dictionary<Boolean, String>();
strings.Add(true, "Yes");
strings.Add(false, "No");

然后当你需要值时:

String yesNo = strings[checkbox.Checked];

答案 7 :(得分:0)

string doThisWork = (bool)chkBox.Checked ? "是":"否"