زر راديو HTML داخل ASP.NET C # مكرر
-
10-07-2019 - |
سؤال
وأنا أحاول أن مجرد ربط زر الإدخال HTML داخل مكرر:
<asp:Repeater ID="Outlets" runat="server" >
<ItemTemplate>
<input type="radio" name="Proposal" value="Test1" id="Radio1" checked="
<%#`GetSelectedValue(DataBinder.Eval(Container.DataItem,"IsDefaultSelection"))%>" />`
<label for="Test1">
<%#DataBinder.Eval(Container.DataItem, "Label")%>
</label>
</ItemTemplate>
</asp:Repeater>
وطريقة GetSelectedValue ببساطة إرجاع سلسلة "فحص" لزر الراديو التي سيتم اختيارها، يتيح القول كان مكرر 3 بنود لحلقة وعندما تجعل العلامات واذا كنت تفقد عنصر أرى القيمة الصحيحة للراديو الأول زر أي فحص = "فحص" ولكن على واجهة المستخدم يحصل على اختيار زر الاختيار 3RD على الرغم من قيمتها فحص = "كاذبة"، يمكن للشخص أن توجه لي على ما أقوم به خطأ؟
المحلول
وتعطي هذه المحاولة
<%# (bool)Eval("IsDefaultSelection") ? " checked=\"checked\" " : string.Empty %>
وأساسا إدراجها في السمة checked
يسبب RadioButton
إلى أن يتم التحقق. كنت تريد أن تخلعها حتى يتم تقديم الشيء كله أو الشيء كله غائب.
وكما نضع في اعتبارنا كل ما تبذلونه من RadioButtons
تسير الكشف عن اسمه Test1
قد يكون فكرة جيدة لاستخدام RadioButton
جانب الملقم.
نصائح أخرى
والسمة إيداعه HTML لا قيمة له المرتبطة به. يجب عليك فقط استخدام هذه السمة إذا كنت ترغب في تحديده.
وأنت تريد شيئا مثل:
<asp:Repeater ID="Outlets" runat="server" >
<ItemTemplate>
<input type="radio" name="Proposal" value="Test1" id="Radio1" <%
if (GetSelectedValue(DataBinder.Eval(Container.DataItem,"IsDefaultSelection"))
response.write("CHECKED");
%> />
<label for="Test1">
<%#DataBinder.Eval(Container.DataItem, "Label")%>
</label>
</ItemTemplate>
</asp:Repeater>
وإلا هل يمكن ببساطة استخدام عناصر التحكم ASP.NET INPUT.