Asp.net
如何在中繼器項中找到選中的 RadioButton?
我在 ASPX 頁面上有一個 Repeater 控制項,定義如下:
<asp:Repeater ID="answerVariantRepeater" runat="server" onitemdatabound="answerVariantRepeater_ItemDataBound"> <ItemTemplate> <asp:RadioButton ID="answerVariantRadioButton" runat="server" GroupName="answerVariants" Text='<%# DataBinder.Eval(Container.DataItem, "Text")%>'"/> </ItemTemplate> </asp:Repeater>為了允許及時選擇一個單選按鈕,我使用了本文的技巧。
但是現在送出表單時,我想確定選中了哪個單選按鈕。
我可以這樣做:
RadioButton checkedButton = null; foreach (RepeaterItem item in answerVariantRepeater.Items) { RadioButton control=(RadioButton)item.FindControl("answerVariantRadioButton"); if (control.Checked) { checkedButton = control; break; } }但希望它可以以某種方式更簡單地完成(可能通過 LINQ to 對象)。
由於您已經在使用 javascript 來處理客戶端上的單選按鈕點擊事件,因此您可以同時使用所選值更新隱藏欄位。
然後,您的伺服器程式碼將只訪問隱藏欄位中的選定值。
您總是可以使用
Request.Form來獲取送出的單選按鈕:var value = Request.Form["answerVariants"];我認為送出的值預設為
<asp:RadioButton />所選的 id,但您始終可以添加 value 屬性 - 即使它不是正式的<asp:RadioButton />屬性 - 然後這將是送出的值:<asp:RadioButton ID="answerVariantRadioButton" runat="server" GroupName="answerVariants" Text='<%# DataBinder.Eval(Container.DataItem, "Text")%>'" value='<%# DataBinder.Eval(Container.DataItem, "SomethingToUseAsTheValue")%>' />