2016-04-24 2 views
1

Я пытаюсь научиться использовать jquery с asp.net, и у меня есть gridview. Я хочу скрыть userId в gridview, но получаю значение Id щелкнутой строки. Вот мой GridView:Скрытие столбца gridview и получить его при нажатии

<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> 

И вот моя попытка JQuery:

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

Я уверен, что вы можете увидеть, что он не работает в первый взгляд. Каков правильный способ сделать это?

ответ

2

Вы должны заменить:

<asp:TemplateField Visible="false"> 

По

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

С класса стиля:

.notVisible 
{ 
    display: none; 
} 

Когда свойство Visible устанавливается в false, ASP.NET удаляет элемент управления из вывода HTML. Следовательно, код клиента не найдет его.

Смежные вопросы