2016-02-08 3 views
0

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

кнопка отмены также становится невидимым

<asp:GridView ID="gvCompanies" runat="server" CssClass="mydatagrid" PagerStyle-CssClass="pager" 
      HeaderStyle-CssClass="header" RowStyle-CssClass="rows" 
      AllowPaging="True" OnPageIndexChanging="gvCompanies_PageIndexChanging" AutoGenerateColumns="False" EmptyDataText="No records found" OnRowEditing="gvCompanies_RowEditing" AutoGenerateEditButton="true" OnRowUpdating="gvCompanies_RowUpdating" OnRowCancelingEdit="gvCompanies_RowCancelingEdit" OnRowDeleting="gvCompanies_RowDeleting" AutoGenerateDeleteButton="true" OnRowDataBound="gvCompanies_RowDataBound" > 
      <Columns> 
      <asp:TemplateField HeaderText="S No."> 
       <ItemTemplate> 

       <asp:Label ID="lblid" runat="server" Text='<%#Eval ("id")%>'></asp:Label> 
        </ItemTemplate> 
        </asp:TemplateField> 
    <asp:TemplateField HeaderText="Company" ItemStyle-ForeColor="black"> 
<ItemTemplate> 
    <a href='services.aspx?CompanyId=<%#Eval("id")%>'> 
<asp:Label ID="lblCompany" runat="server" Text='<%# Eval("Company")%>'/> 
     </a> 
</ItemTemplate> 
<EditItemTemplate> 
<asp:TextBox ID="txtCompany" runat="server" Text='<%# Eval("Company")%>'/> 
</EditItemTemplate> 
      </Columns> 
       <EmptyDataTemplate> 
       <table cellspacing="0" rules="all" border="0" style="border-collapse: collapse;"> 
      <tr style="color: White; background-color: #3AC0F2;"> 
       <th scope="col" style="width: 150px;"> 
        SL No 
       </th> 
       <th scope="col" style="width: 150px;"> 
        Company 
       </th> 
       <th scope="col" style="width: 100px;"> 
        Company Code 
       </th> 
       <th scope="col" style="width: 100px;"> 
        Address 
       </th> 
      </tr> 
      <tr> 
       <td colspan="99" align = "center"> 
        No records found for the search criteria. 
       </td> 
      </tr> 
     </table> 
    </EmptyDataTemplate> 
     </asp:GridView> 



if (e.Row.RowType == DataControlRowType.DataRow) 
       { 
        // Hide the edit button when some condition is true 
        // for example, the row contains a certain property 
        if (Loggedinuser != "kernel") 
       { 


        e.Row.Cells[0].Controls[2].Visible = false; 


       } 


       } 
+1

Возможный дубликат [ASP.net GridView: скрыть Редактировать | Удалить ссылки] (http://stackoverflow.com/questions/9655357/asp-net-gridview-hide-editdelete-links) – Sankar

+0

Вы можете разместить весь код aspx gridview? – Sankar

+0

не понял ваше состояние, почему это так (Loggedinuser == "kernel") {if (Loggedinuser! = "Kernel") // ваш код}? , если ваше первое условие будет истинным, оно никогда не вступит во второе условие. –

ответ

1

Есть два варианта, чтобы скрыть или показать конкретный столбец в GridView

Вариант 1: Использование индекса Cells

protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e) 
     { 
      if (e.Row.RowType == DataControlRowType.DataRow) 
       { 
       if("your Condition") 
        { 

        e.Row.Cells[0].Control[0].Visible = false;//or true 
        } 
       }   
     } 

Вариант 2: Цитирование через коллекции GridView Row Controls

protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e) 
    { 


      foreach (TableRow row in GridView1.Controls[0].Controls) 
      { 
      if("your Condition") 
         { 
         row.Cells[0].Control[0].Visible = false; 
         } 
      }   
    } 
+0

если сделаю подобный это отмена кнопка тоже будет invisibe. нажав кнопку редактирования –

+0

привет, пожалуйста, обратитесь к моему ответу снова .. я думаю, теперь он может вам помочь –

+0

hai в первом указателе У меня есть кнопка редактирования и вторая кнопка удаления индекса. Если im делает невидимый второй указатель [1], тогда кнопка отмены также будет невидимый –