2009-04-09 18 views
13

Tôi đang sử dụng:Cách tốt nhất để xem liệu RadioButtonList có giá trị được chọn không?

if (RadioButtonList_VolunteerType.SelectedItem != null) 

hoặc làm thế nào về:

if (RadioButtonList_VolunteerType.Index >= 0) 

hoặc làm thế nào về (mỗi câu trả lời Andrew Hare của):

if (RadioButtonList_VolunteerType.Index > -1) 

Đối với những ai có thể đọc câu hỏi này, sau đây không phải là phương thức hợp lệ. Như Keltex đã chỉ ra, giá trị được chọn có thể là một chuỗi rỗng.

if (string.IsNullOrEmpty(RadioButtonList_VolunteerType.SelectedValue)) 

Trả lời

9

Xét về khả năng đọc tất cả họ đều thiếu một cái gì đó cho tôi. Điều này có vẻ giống như một ứng cử viên tốt cho một phương pháp mở rộng.

public static class MyExtenstionMethods 
{ 
    public static bool HasSelectedValue(this RadioButtonList list) 
    { 
    return list.SelectedItem != null; 
    } 
} 


... 

if (RadioButtonList_VolunteerType.HasSelectedValue) 
{ 
// do stuff 
} 
+0

Nhân tiện, nó phải là "return list.SelectedItem! = Null". –

+0

điểm tốt, tôi sẽ sửa lỗi. –

8

Đó là tất cả các cách hợp lệ và hoàn toàn hợp pháp để kiểm tra giá trị đã chọn. Cá nhân tôi tìm thấy

RadioButtonList_VolunteerType.SelectedIndex > -1 

để rõ ràng nhất.

0

Tôi khuyên bạn nên:

RadioButtonList_VolunteerType.SelectedIndex>=0. 

Theo Microsoft Documentation:

Chỉ số thứ tự thấp nhất của các mục đã chọn trong danh sách. Giá trị mặc định là -1, cho biết không có gì được chọn.

string.IsNullOrEmpty (RadioButtonList_VolunteerType.SelectedValue) sẽ phải lúc nào cũng làm việc như bạn có thể có một ListItem với một giá trị rỗng:

<asp:ListItem Value=''>This item has no value</asp:ListItem> 
0

Câu hỏi xoay quanh việc kiểm tra giá trị rỗng hoặc kiểm tra của int. phương pháp khuyến nông lớn Martin cũng có thể được viết:

public static bool HasSelectedValue(this ListControl list) 
{ 
    return list.SelectedIndex >= 0; 
} 

Các tài liệu MSDN cho một ListControl khẳng định:

mặc định cho SelectedItem is null.

Mặc định cho SelectedIndex is -1.

Vì vậy, hoặc là cách hợp lệ và cả hai đều hoạt động. Câu hỏi là cách tốt nhất. Tôi đoán SelectedIndex vì nó là một hoạt động kiểu giá trị hơn là hoạt động kiểu tham chiếu. Nhưng tôi không có bất cứ điều gì để trở lại đó với.

Các vấn đề liên quan