2016-04-24 4 views
1

Ich versuche zu lernen mit jquery mit asp.net und ich habe eine Gridview. Ich möchte userId in Gridview ausblenden, aber Id-Wert der angeklickten Zeile erhalten. Hier ist meine gridview:Verstecke Gridview Spalte und bekomme es, wenn geklickt

<asp:GridView ID="addGridControl" CssClass="mGrid" PagerStyle-CssClass="pgr" AllowPaging="true" PageSize="10" runat="server" AutoGenerateColumns="False" DataKeyNames="CustomerID" DataSourceID="EntityDataSource1"> 
     <Columns> 
      <asp:TemplateField Visible="false"> 
       <ItemTemplate> 
        <asp:Label ID="Label1" runat="server" Text='<%#Eval("CustomerId") %>'></asp:Label> 
       </ItemTemplate> 
      </asp:TemplateField> 
      <asp:BoundField DataField="CompanyName" HeaderText="CompanyName" SortExpression="CompanyName"></asp:BoundField> 
      <asp:BoundField DataField="ContactName" HeaderText="ContactName" SortExpression="ContactName"></asp:BoundField> 
      <asp:BoundField DataField="ContactTitle" HeaderText="ContactTitle" SortExpression="ContactTitle"></asp:BoundField> 
      <asp:BoundField DataField="Address" HeaderText="Address" SortExpression="Address"></asp:BoundField> 
      <asp:BoundField DataField="City" HeaderText="City" SortExpression="City"></asp:BoundField> 
      <asp:BoundField DataField="Region" HeaderText="Region" SortExpression="Region"></asp:BoundField> 
      <asp:BoundField DataField="PostalCode" HeaderText="PostalCode" SortExpression="PostalCode"></asp:BoundField> 
      <asp:BoundField DataField="Country" HeaderText="Country" SortExpression="Country"></asp:BoundField> 
      <asp:BoundField DataField="Phone" HeaderText="Phone" SortExpression="Phone"></asp:BoundField> 
      <asp:BoundField DataField="Fax" HeaderText="Fax" SortExpression="Fax"></asp:BoundField> 
     </Columns> 
    </asp:GridView> 

Und hier ist mein jquery Versuch:

$("#addGridControl tr").click(function() { 
     var secilen = $(this).closest('tr').find("#Label1").attr("Text"); 
     alert(secilen); 
    }); 

Ich bin sicher, können Sie sehen, dass es nicht in dem ersten Blick zu arbeiten. Was ist der richtige Weg, dies zu tun?

Antwort

2

Sie ersetzen sollten:

<asp:TemplateField Visible="false"> 

von

<asp:TemplateField HeaderStyle-CssClass="notVisible" ItemStyle-CssClass="notVisible" FooterStyle-CssClass="notVisible"> 

Mit dem Klassenstil:

.notVisible 
{ 
    display: none; 
} 

Wenn die Visible Eigenschaft auf false gesetzt wird, entfernt ASP.NET die Steuer von der HTML-Ausgabe. Folglich wird der Client-Code es nicht finden.

Verwandte Themen