Come ottenere valori textbox da gridview utilizzando jquery

Come valori textbox da gridview al clic di un linkbutton utilizzando jquery
ecco la mia gridview

  <asp:GridView ID="gvEmployee" runat="server" AutoGenerateColumns="false" GridLines="Both">
            <Columns>
                <asp:TemplateField HeaderText="Email">
                    <ItemTemplate>
                        <asp:TextBox ID="txtEmail" runat="server" Text='<%#Eval("Emailid") %>'></asp:TextBox>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Name">
                    <ItemTemplate>
                        <asp:TextBox ID="txtName" runat="server" Text='<%#Eval("Name") %>'></asp:TextBox>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:LinkButton ID="lnkgettext" runat="server" Text="Gettextboxvalue"></asp:LinkButton>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>

Ho provato qualcosa di simile

  alert($(this).parent("td").parent("tr").find("input:text").val());

Posso in grado di trovare il primo valore di una textbox
ma di fronte a un problema ottenere il successivo valore della casella di testo io.e txtName dal secondo td
Si prega di suggerire
Inoltre suggerisco, se avete qualche soluzione con javascript

InformationsquelleAutor Rakesh Sawant | 2012-11-25



4 Replies
  1. 1

    Può questo vi aiuterà a…

        function GVtxtAmount() {
        var GVMaintainReceiptMaster = document.getElementById('<%= GVMaintainReceiptMaster.ClientID %>');
    
        for (var rowId = 1; rowId < GVMaintainReceiptMaster.rows.length; rowId++) {
            var txtbx = GVMaintainReceiptMaster.rows[rowId].cells[0].children[0];
            alert(txtbx.value);
        }
        return false;
    }
    • Ottima risposta Sunil. Vi ringrazio molto.
  2. 0

    è possibile utilizzare fine di selezione come segue

     $( "[ @id *= 'txtEmail']" ).text();

    Ecco un buon link su come trovare l’elemento di selezione

    [http://www.bennadel.com/blog/1003-Cool-jQuery-Predicate-Selectors.htm][1]

    Troverete come questo

     //first find the tr 
     var tr= $(this).parent("td").parent("tr");
     and then use like selector with.
    
     var Email=$(this).parent("td").parent("tr").find($( "[ @id *= 'txtEmail']" )).val();
     var Name= $(this).parent("td").parent("tr").find($( "[ @id *= 'txtName']" )).val();
    • non funziona per me
    • ha soluzione alert ($a).genitore(“td”).genitore(“tr”).find(“.txtclass1”).val());
    • sapete cosa sono in uso. Si utilizza un selettore di classe. Quindi, se avete messo il css-classi, allora è ok.
    • sì, ho usato selettore di classe coz id sembra tranquilla difficile
  3. 0
    $('#<%=lnkgettext.ClientID %>').click(function(){
        var email=$(this).parent('td').parent('tr').find('#<%=txtEmail.ClientID%>').val();        
        var name=$(this).parent('td').parent('tr').find('#<%=txtName.ClientID%>').val();
    }

    o

    $(this).parent("td").parent("tr").each(function(){
        $(this).find('td').each(function(){
            //Do whatever you want, you can use $(this) to get value of current cell
        })
    })
    • si tratta di un gridview così la si cambia al momento giusto. ci saranno degli id univoci per ogni colonna.
    • Che cosa esattamente cosa si vuole dire? Stai dicendo che la texbox controlli cambiano la loro IDENTITÀ?
    • sì, poiché si tratta di una gridview, e avrà molte righe in fase di runtime. Con id diverso come txtEmail_0 e txtEmail_1 ecc e se la pagina viene ereditato da pagina mastro e poi sarà come ct0_txtEmail_0 ecc
    • Sì, avrà molte righe .. Ma i nomi dei controlli non cambiare mai.. hai provato il mio codice?
    • ci possono essere due di controllo della stessa e cioè in asp.net ??
    • No, mai.. In una gridview , tutti i controlli sono più volte riempito con valori diversi in ogni riga.. Ma il loro ID di non cambiare con ogni nuova riga..
    • Sì, essi sono diversi in ogni riga, come gvEmployee$ctl02$txtName gvEmployee$ctl03$txtName
    • Ho modificato la Mia risposta..
    • var alltextbox=textBoxValues[0]+’ ‘+textBoxValues[1]; di dare carattere a 0 e 1 posizione e non enire stringa io.e se ho rakesh 1 ° textbox e [email protected] 2 ° poi mi r a in avviso
    • Provare.. ho modificato il mio codice.. ClientID mancava nei precedenti codici.. Anche Controllare il nuovo codice che ho postato.
    • mi da Errore come Il nome ‘txtName’ non esiste nel contesto corrente

  4. 0

    prova questo, dovrebbe funzionare perfettamente

    $('a[id$=lnkgettext]').click(function(){
        var email=$(this).parent('tr').find('input[id=txtEmail]').val();        
        var name=$(this).parent('tr').find('input[id=txtName]').val();
        alert(email+" "+name);
    }

Lascia un commento