簡體   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