2010-03-12 56 views
3

我使用C#和ASP.Net 3.5,並試圖從複選框中獲得「是」/「否」值,而不是真/假。有一種簡單的方法,還是我需要做「if」語句?ASP.Net複選框返回「是」或「否」值(而不是真/假)

+0

我很好奇你爲什麼想這樣做?使用布爾值處理比使用表示相同事物的字符串要容易得多。 – 2010-03-12 19:52:54

+0

複選框的值顯示在「打印此頁」中,客戶希望看到「是/否」而不是「真/假」 – user279521 2010-03-12 19:54:32

+0

客戶喜歡「我在控制中」感覺 – Luiscencio 2010-03-12 20:03:19

回答

9

確保試試這個:

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

more info...

+1

完美的解決方案。謝謝Luiscencio – user279521 2010-03-12 20:00:06

+1

不客氣Mr.Dude 279521 – Luiscencio 2010-03-12 20:02:15

0

可以使用conditional operator

checkbox.Checked ? "Yes" : "No" 

如果你要聰明一點,你可以使用字典:

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

BooleanNames[checkbox.Checked] 

但是,你真的不應該。

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

我相信你正在使用一個asp.net複選框控制來看,在 '選中' 屬性。如果是這樣,您需要聲明將布爾值轉換爲是/否:

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

您可以使用三態語句來模擬所需的行爲。

喜歡的東西

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

會做你莫屬。

如果由於某種原因,您希望從複選框中獲得實際的Yes/No direct(並且我完全沒有理由這麼做),那麼您可以對組件進行子類化,而不是真/假使用字符串。似乎有點愚蠢做到這一點,雖然有效的「是」/「否」是一種人性化,因爲我也沒有更多的代碼來維護這種方式,這是非常標準的。

0

只給你一個沒有if語句替代(可能不是在這種情況下,最好的辦法,但...):

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

然後,當你需要的值:

String yesNo = strings[checkbox.Checked]; 
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 
+0

喜歡使用擴展方法來解決這個問題。 – 2010-03-12 20:35:43

+0

不錯=] 7654321 – Luiscencio 2010-03-12 22:12:21

相關問題