문제

리피터 내부의 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 개의 항목이 루프에 3 개의 항목을 가지고 있고 마크 업이 렌더링되면 요소를 검사하면 첫 번째 라디오 버튼에 대한 올바른 값이 표시됩니다. = "확인"그러나 UI에서 UI에서 세 번째 라디오 버튼이 확인 된 값 = "false"에도 불구하고 선택됩니다. 누군가 내가 내가 잘못하고있는 일에 대해 저를 안내 할 수 있습니까?

도움이 되었습니까?

해결책

이것을 시도해보십시오

<%# (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 입력 컨트롤을 사용할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top