繁体   English   中英

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

[英]ASP.Net checkbox to return a “Yes” or “No” value (instead of True / False)

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

一定要试试这个:

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

更多信息...

为此向 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
string YesNo = chkYesNo.Checked ? "Yes" : "No";

您可以使用三元语句模拟您想要的行为。

就像是

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

会让你完美。

如果出于某种原因,您想直接从复选框中获取实际的 Yes/No(我看不出有任何原因),那么您可以对组件进行子类化,而不是使用 true/false 让它接受字符串。 这样做似乎有点愚蠢,尽管“是”/“否”实际上是一种人性化,但对我而言,以这种方式派生它的维护代码也较少,这是非常标准的。

您可以使用条件运算符

checkbox.Checked ? "Yes" : "No"

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

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

BooleanNames[checkbox.Checked]

然而,你真的不应该。

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

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

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

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

然后当您需要该值时:

String yesNo = strings[checkbox.Checked];

字符串 doThisWork = (bool)chkBox.Checked ? “是”:“不是”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM