2010-09-03 6 views
1

J'ai une zone de texte à l'intérieur de gridview. J'ai besoin d'obtenir l'identifiant de textbox en javascript. Quand j'utilise comme ceci '<% = txtNewQty.ClientID%>'; cela donne l'erreur de compilation.Asp.net gridview

+0

sur quel événement vous voulez obtenir la zone de texte en javascript – Azhar

+0

est-ce que l'une des réponses ici répond à votre question? Ou avez-vous besoin de plus d'informations? – JumpingJezza

+0

Rien ne m'aide. Je ne suis pas capable d'obtenir l'identifiant client du contrôle textbox qui est ajouté en tant que itemtemplate dans le gridview. – Bala

Répondre

0

txtNewQty n'existe pas au niveau de la page et donc vous ne serez pas en mesure de faire référence de cette manière. vous devrez faire quelque chose comme générer les js du côté serveur ou descendre de l'élément gridview. poster du code et une description de ce que vous voulez arriver.

0

Les contrôles à l'intérieur de Gridviews ne sont pas membres de la page, ils existent simplement dans le fichier .aspx. Ils vont être répétés dans chaque rangée afin qu'ils soient créés de façon dinamique.

Pour obtenir une référence de la commande à l'intérieur d'une ligne de la Gridview vous pouvez utiliser FindControl

foreach(GridViewRow row in gridview.Rows) 
{ 
    Textbox tb = row.FindControl("txtNewQtv") as Textbox; 
    string id = tb.ClientID; 
    //Generate your javascript here so it can be callable on the client 
} 
0

Voici une mauvaise façon de le faire car il est codé en dur dans l'index de la colonne. Cela fonctionne mais il doit y avoir une meilleure façon d'utiliser jQuery. Malheureusement, je ne suis pas un expert en la matière.

<script type="text/javascript"> 
    function Update(btn) { 
     alert(btn.parentNode.parentNode.children[0].children[0].id); 
    } 
</script> 
<asp:GridView ID="GridView1" runat="server"> 
    <Columns> 
     <asp:TemplateField> 
      <ItemTemplate> 
       <asp:TextBox ID="txtNewQtv" runat="server"></asp:TextBox> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField> 
      <ItemTemplate> 
       <input type="button" onclick="Update(this)" value="Update" /> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView>