Pergunta

Eu tenho um pequeno formulário da web com 2 botões de rádio, chamá -los de pickfromlist e entervalue. Quando o PickFromlist é verificado, quero mostrar um GridView que eu configurei para ligar a um objectDataSource. Quando o Entervelue é verificado, quero que o Gridview desapareça.

Este formulário é apresentado usando uma tabela e deseja ocultar/mostrar as linhas apropriadas com base nos dados apropriados e na entrada do usuário.

Infelizmente, o GridView não se liga quando a linha TrpickFromlist2 especifica o ID e os atributos RUNAT = "Server". Se eu remover o ID e RUNAT = "Server" da linha TRPICKFROMLIST2, ele se liga com sucesso.

Alguma ideia?

<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" />
        ...
Foi útil?

Solução

Por que você não mostra/esconde o TRS com JavaScript? Dessa forma, você não terá esse problema e terá uma interface do usuário muito mais responsiva.

Com jQuery:

$ ('. ClassOnsShowRadioButton'). Clique (function () {$ ('. trtashow'). Show (); $ ('. trtohide'). hide ();});

Obviamente, faça o contrário para o outro botão de rádio.

Outras dicas

Acabei implementando Controle de campo de campo de Wilco Bauwer Para resolver esse problema. Não é uma solução perfeita, pois o controle surge o valor do índice da linha selecionado, em vez do (s) valor (s) da chave de dados selecionados; No entanto, funcionou bem.

Hmm .. não tenho muita certeza, mas algo que me levou algumas vezes é ter os Autowireevents configurados como false, está no topo na seção <% página /%>. Desculpe se não ajuda, mas algo irritante e insignificante como esse é provavelmente o problema.

Se os Autowireevents responderam que Joe sugeriu que não é o problema, você também pode tentar remover o Runat = servidor das tags TR e enrolá -las com os espaços reservados e usar os espaços reservados para controlar a visibilidade. (Observe, não use painéis, pois isso resultará em HTML inválido)

EU notei o mesmo comportamento Com um FormView dentro de uma tag TR com runat = "servidor"

Algum motivo específico que você está usando uma tabela para layout? Tente tirar todos os seus controles da tabela e faça com que os botões de rádio apenas tornem o Gridview real visível/invisível.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top