2012-02-20 61 views
9

Tôi cần xây dựng danh sách các nút radio, dựa trên dữ liệu tôi trả về từ DB của mình. Mỗi nút cần phải có một giá trị liên kết với nó mà tôi có thể nhận ra dựa trên nút đã chọn.Đặt thuộc tính giá trị của RadioButton

Lý tưởng nhất là tôi chỉ sử dụng điều khiển RadioButtonList, tuy nhiên, tôi cần phải có bố cục rất tùy chỉnh mà RadioButtonList không xuất hiện để có thể xử lý.

Cách khác là tạo cá nhân RadioButton s và bọc chúng trong Bảng điều khiển để nhóm chúng. Tuy nhiên, dường như không phải là thuộc tính Giá trị trên RadioButton?

Có cách nào khác để đặt giá trị thành điều khiển RadioButton không? Ngoài ra, một cách để tùy chỉnh hoàn toàn đầu ra RadioButtonList.

Hiện tại, tôi nghĩ tôi có thể phải sử dụng các nút radio HTML với runat="server", phải là cách tốt hơn ...?

+0

Giải pháp tốt, cảm ơn bạn. Các biểu mẫu trên web hiện đang ở đâu ... –

Trả lời

3

Bạn có thể tạo lớp nút radio của riêng bạn mà kéo dài một tiêu chuẩn và bổ sung thêm một tài sản giá trị:

public class ValueCheckBox : System.Web.UI.WebControls.RadioButton 
{ 
    public string Value { get; set; } 
} 
+0

Tôi thích giải pháp, có lợi thế nào khi sử dụng điều này trong Attributes.Add như đề xuất của Rahul và Marchin không? Cả hai dường như làm công việc. –

+0

Điều này sẽ làm cho thuộc tính Giá trị dễ quản lý trong thời gian dài trong trường hợp bạn định sử dụng lại điều khiển ở nơi khác. Ý tôi là, chỉ cần so sánh 'radioButton.Attributes.Add (" Key "," Value ");' and 'radioButton.Value =" value ";'. – Rahul

+0

Có vẻ như các thuộc tính được cho là được sử dụng cho các thuộc tính HTML được gửi tới trình duyệt http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.webcontrol.attributes.aspx –

-1

Điều khiển nút radio không có Thuộc tính giá trị, đúng vậy. Bạn phải sử dụng Checked để thay thế.

+1

Có nhưng Đã kiểm tra chỉ cho tôi biết liệu trường đó đã được kiểm tra hay chưa. Các nút là động vì vậy tôi cần lưu trữ một giá trị liên quan. –

+0

Bạn nghĩ gì về 'giá trị liên kết'? Bạn có muốn làm một số loại ràng buộc? Thuộc tính 'Đã kiểm tra' có thể được thiết lập, không chỉ đọc. – MarcinJuraszek

+0

Tôi có nghĩa là nếu tôi có 3 nút radio, mỗi nút biểu thị một hàng trong cơ sở dữ liệu của tôi. Khi người dùng kiểm tra, tôi cần kiểm tra nút nào đã được kiểm tra và liên kết nó với một bản ghi trong cơ sở dữ liệu của tôi. Vì vậy, tôi thực sự cần lưu trữ ID cùng với nút radio. –

2

Bạn luôn có thể thử sử dụng các thuộc tính để lưu các giá trị liên quan. ví dụ:

radioButton.Attributes.Add("Key", "Value"); 

Đặt thuộc tính Nhóm là giống nhau cho tất cả các nút radio và bạn nên làm tốt. Chỉ cần nhớ, ASP. Net có một vấn đề nhỏ nếu các nút radio riêng lẻ nằm trong các hàng khác nhau của một bộ lặp, GridView hoặc một số kiểu lưới như vậy.

+0

Ah yeh, quên tôi có thể sử dụng Attributes.Add.Có lợi thế nào khi sử dụng đề xuất mở rộng kiểm soát của Travor Pilley không? Cả hai sẽ làm việc, bị rách giữa hai người. –

1

Để có bộ nút radio STATIC nhanh và bẩn.
Tôi đã sử dụng trường Thẻ trong cửa sổ Thuộc tính để xác định giá trị theo cách thủ công.

Nếu bạn đang sử dụng DB, bạn có thể ràng buộc dữ liệu của mình với nó. Bạn không bao giờ biết khi nào bạn sẽ thay đổi một khóa hoặc tên.

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