سؤال

وأنا أحاول أن مجرد ربط زر الإدخال 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.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top