Tôi có một điều khiển templated (một bộ lặp) liệt kê một số văn bản và đánh dấu khác. Mỗi mục có một radio kết hợp với nó, làm cho người dùng có thể chọn MỘT trong số các mục được tạo bởi bộ lặp.ASP.NET RadioButton gây rối với tên (tên nhóm)
Bộ lặp lại ghi thiết lập nút radio tên và id được tạo bằng quy ước đặt tên mặc định của ASP.NET làm cho mỗi nút vô tuyến thành một nhóm 'đầy đủ'. Điều này có nghĩa là tất cả các radiobutton độc lập với nhau, điều này lại không may có nghĩa là tôi có thể chọn tất cả các nút radio cùng một lúc. Các radiobutton có thuộc tính thông minh 'groupname' được sử dụng để thiết lập một tên chung, do đó, họ nhận được nhóm lại với nhau và do đó nên được phụ thuộc (vì vậy tôi chỉ có thể chọn một tại một thời điểm). Vấn đề là - điều này không hoạt động - bộ lặp sẽ đảm bảo id và do đó tên (điều khiển nhóm) khác nhau.
Vì tôi sử dụng bộ lặp (có thể là một listview hoặc bất kỳ điều khiển databound templound khác) Tôi không thể sử dụng RadioButtonList. Vậy điều đó để lại cho tôi ở đâu?
Tôi biết tôi đã gặp vấn đề này trước và giải quyết vấn đề. Tôi biết hầu như tất cả các lập trình ASP.NET phải có nó quá, vậy tại sao tôi không thể google và tìm một giải pháp vững chắc cho vấn đề này? Tôi đã xem xét các giải pháp để thực thi việc nhóm theo JavaScript (xấu xí!) Hoặc thậm chí để xử lý các nút vô tuyến như các điều khiển không phải máy chủ, buộc tôi phải thực hiện một số Request.Form[name]
để đọc trạng thái. Tôi cũng đã thử nghiệm ghi đè thuộc tính tên trên sự kiện PreRender
- tiếc là trang sở hữu và trang chính lại ghi đè tên này để phản ánh id/tên đầy đủ, vì vậy tôi kết thúc với cùng một kết quả sai.
Nếu bạn không có giải pháp tốt hơn so với những gì tôi đăng, bạn vẫn rất hoan nghênh để đăng suy nghĩ của bạn - ít nhất tôi sẽ biết rằng người bạn của tôi 'jack' là đúng về làm thế nào messed lên ASP.NET đôi khi;)
Xem: * [BUG: Radio Buttons Are Not loại trừ lẫn nhau Khi sử dụng trong một Repeater Server Control] (http://support.microsoft.com/default.aspx?scid=kb; en-us; Q316495) *. Điều đó chỉ đơn giản là điên rồ ... Đó là một lỗi từ khuôn khổ 1.0, và nó có tác động lớn như vậy. Tôi cần phải kế thừa radiobutton và ghi đè lên một vài phương pháp để làm cho nó hoạt động (cho phiên bản ASP.NET hiện tại của tôi). Đưa cái gì? –