2016-08-13 2 views
-1

Как я могу скрыть btnadddetail, когда я экспортирую сетки в файл excel.Скрыть кнопку внутри вложенного вида сетки

ниже код не работает

Экспорт кода

protected void btnexcel_Click(object sender, EventArgs e) 
{ 
    gridrequisitions.DataSource = r.GetRequisition(); 
    Response.Clear(); 
    Response.Buffer = true; 
    Response.AddHeader("content-disposition", 
     "attachment;filename=RequisitionsReport.xls"); 
    Response.Charset = ""; 
    Response.ContentType = "application/vnd.ms-excel"; 
    StringWriter sw = new StringWriter(); 
    HtmlTextWriter hw = new HtmlTextWriter(sw); 
    gridrequisitions.GridLines = GridLines.Both; 
    gridrequisitions.DataBind(); 

    foreach (GridViewRow row in gridrequisitions.Rows) 
    { 
     GridView gvItems = row.Cells[0].FindControl("gvItems") as GridView; 
     gvItems.Columns[0].Visible = false; 
     gvItems.Columns[1].Visible = false; 
     gvItems.Columns[2].Visible = false; 
    } 

    gridrequisitions.Caption = "Requisitions Report"; 

    foreach (GridViewRow row in gridrequisitions.Rows) 
    { 
     foreach (TableCell cell in row.Cells) 
     { 
      for (int i = cell.Controls.Count - 1; i >= 0; i--) 
      { 
       if (cell.Controls[i] is Image) 
       { 
        Image img = cell.Controls[i] as Image; 


        if (img.ImageUrl.Contains("plus.png") || img.ImageUrl.Contains("minus.png")) 
        { 
         cell.Controls.RemoveAt(i); 
        } 
       } 
      } 
     } 
    } 

    gridrequisitions.Columns[1].Visible = false; 
    gridrequisitions.Columns[2].Visible = false; 
    Button btnadddetail = (Button)sender; 
    btnadddetail.Visible = false; 
    this.ClearControls(gridrequisitions); 
    gridrequisitions.RenderControl(hw); 
    //style to format numbers to string 
    string style = @"<style> .textmode { mso-number-format:\@; } </style>"; 
    Response.Write(style); 
    Response.Output.Write(sw.ToString()); 
    Response.Flush(); 
    Response.End(); 
} 

Сетка ракурса

<asp:GridView ID="gridrequisitions" OnRowDataBound="gridrequisitions_RowDataBound" OnRowCommand="gridrequisitions_RowCommand" DataKeyNames="RequisitionID" runat="server" CssClass="table table-bordered text-nowrap" AutoGenerateColumns="False"> 
    <Columns> 
     <asp:TemplateField HeaderText="Preview"> 
      <ItemTemplate> 
       <asp:Image ID="imgPlus" runat="server" AlternateText="" ImageUrl="img/plus.png" Style="cursor: pointer" /> 
       <asp:Panel ID="pnlproducts" runat="server" Style="display: none"> 
        <asp:GridView ID="gvItems" CssClass="table table-bordered" OnRowCommand="gvItems_RowCommand" OnRowDataBound="gvItems_RowDataBound" runat="server" AutoGenerateColumns="false"> 
         <Columns> 
          <asp:BoundField DataField="ItemID" HeaderText="ItemID" SortExpression="ItemID" ItemStyle-CssClass="hiddencol" HeaderStyle-CssClass="hiddencol" /> 
          <asp:BoundField DataField="ItemName" HeaderText="Item Name" SortExpression="ItemName" /> 
         </Columns> 
        </asp:GridView> 
        <div class="row" runat="server" id="hidebtn"> 
         <br /> 
         <div class="col-md-4"> 
          <asp:Button ID="btnadddetail" OnClick="btnadddetail_Click" runat="server" Text="Add New Item" CssClass="btn btn-default" Width="200px" ForeColor="Black" /> 
         </div> 
        </div> 
       </asp:Panel> 
      </ItemTemplate> 
    </Columns> 
</asp:GridView> 

ответ

0

Используя .visible свойство Control Вы можете скрыть этот конкретный элемент управления ,

btnadddetail.visible = false;

Этот код должен работать, чтобы скрыть btnadddetail.

+0

что я пытался сделать это не работал – Ayman

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