문제

라디오 버튼 2 개가있는 작은 웹 양식이 있습니다. PoetfromList 및 Entervalue라고 부릅니다. PickfromList가 확인되면 ObjectDatasource에 바인딩하도록 구성된 GridView를 표시하고 싶습니다. Entervalue가 확인되면 GridView가 사라지기를 원합니다.

이 양식은 테이블을 사용하여 배치되며 적절한 데이터 및 사용자 입력에 따라 적절한 행을 숨기거나 표시하려고합니다.

불행히도 TrPickFromList2 행이 ID와 runat = "Server"속성을 지정할 때 GridView가 바인딩되지 않습니다. trpickfromlist2 행에서 id와 runat = "server"를 제거하면 성공적으로 바인딩됩니다.

어떤 아이디어?

<table id="tblOptions" runat="server">
    <tr id="trPickFromList1" runat="server">
        <td>
            <asp:RadioButton ID="rbFromList" runat="server" GroupName="Selection" 
                Text="Get Data From Existing Item" AutoPostBack="True" 
                oncheckedchanged="rbromList_CheckedChanged" />
        </td>
    </tr>
    <tr id="trPickFromList2" runat="server">
        <td style="padding-left:20px">
            <asp:GridView ID="gvList" runat="server" AutoGenerateColumns="False" 
                DataSourceID="odsList" Width="400px" onrowdatabound="gvList_RowDataBound">
                <Columns>
                    ...
                </Columns>
            </asp:GridView>
        </td>
    </tr>
    <tr id="trEnterValue1" runat="server">
        <td>
            <asp:RadioButton ID="rbEnterValue" runat="server" GroupName="Selection" 
                            Text="Create a New Item"
                            AutoPostBack="True" 
                            oncheckedchanged="rbEntered_CheckedChanged" />
        ...
도움이 되었습니까?

해결책

왜 JavaScript로 TRS를 보여 주거나 숨기지 않습니까? 그렇게하면이 문제가 없으며 훨씬 더 반응이 좋은 UI가 있습니다.

jQuery와 함께 :

$ ( '. classOnshowradiobutton'). 클릭 (function () {$ ( '. trtoshow'). show (); $ ( '. trtohide'). hide ();});

그런 다음 분명히 다른 라디오 버튼을 반대로 수행하십시오.

다른 팁

나는 결국 구현했다 Wilco Bauwer의 Rowselectorfield 컨트롤 이 문제를 해결하기 위해. 컨트롤이 선택한 데이터 키 값이 아닌 선택된 행의 인덱스 값을 표면한다는 점에서 완벽한 솔루션은 아닙니다. 그러나 잘 작동했습니다.

흠 .. 확실하지 않지만 몇 번이나 나를 얻은 것은 autowireevents가 거짓으로 설정되어 있고, <% page /%> 섹션의 상단에 있습니다. 도움이되지 않으면 죄송합니다. 그러나 그와 같은 성가신 일은 문제입니다.

Autowireevents 답변이 제안 된 경우 Joe가 문제가되지 않으면 TR 태그에서 Runat = 서버를 제거하고 대신 자리 표시 자로 감싸고 자리 표시자를 사용하여 가시성을 제어 할 수도 있습니다. (유효하지 않은 HTML을 초래하므로 패널을 사용하지 마십시오).

같은 행동을 발견했습니다 runat = "Server"가있는 tr 태그 내부에 양식 뷰가 있습니다.

레이아웃에 테이블을 사용하는 특별한 이유가 있습니까? 모든 컨트롤을 테이블에서 꺼내고 라디오 버튼을 실제 GridView를 볼 수있게 만들 수 있도록하십시오.

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