I don't want linkbuttons to be shown in the Excel sheet, is there a way to remove them in the class that I have created?
I am exporting repeater data into Excel, but I don't want linkbuttons present in repeater to display in Excel.
This is my class to export data
public void Export(Repeater rpt, string FileName)
{
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.Buffer = true;
HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename="+ FileName +".xls");
HttpContext.Current.Response.Charset = "";
HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
HttpContext.Current.Response.Output.Write("<table>");
sw.Write("<tr>");
sw.Write("<h3>Company Name<h3>");//Enter Company Name Here
sw.Write("</tr>");
sw.Write("<tr>");
sw.Write("<h3>Address<h3>");//Enter Company Address
sw.Write("</tr>");
sw.Write("<tr>");
sw.Write("<h3>Contact<h3>");//Enter Company Contact Details
sw.Write("</tr>");
sw.Write("<tr>");
sw.Write("<h3>Email<h3>");//Enter Companys Emails
sw.Write("</tr>");
#region trying foreach
List<Repeater> rpts = new List<Repeater>();
//foreach (Control control in rpts) //remove linkbuttons
//{
// switch (control.GetType().Name)
// {
// case "HyperLink":
// rpts.Add(new Literal { Text = (control as HyperLink).Text });
// break;
// case "TextBox":
// cell.Controls.Add(new Literal { Text = (control as TextBox).Text });
// break;
// case "LinkButton":
// // rpts.Add(new Literal { Text = (control as LinkButton).Text });
// rpts.Add(new Literal { Text = (control as LinkButton).Text });
// break;
// case "CheckBox":
// cell.Controls.Add(new Literal { Text = (control as CheckBox).Text });
// break;
// case "RadioButton":
// cell.Controls.Add(new Literal { Text = (control as RadioButton).Text });
// break;
// }
// cell.Controls.Remove(control);
//}
//foreach (Control hlk in rpts)
//{
// if (hlk is LinkButton)
// {
// LinkButton pp = (LinkButton)hlk;
// pp.Enabled = false;
// pp.Visible = false;
// }
//}
#endregion
rpt.RenderControl(hw);
HttpContext.Current.Response.Output.Write(sw.ToString());
HttpContext.Current.Response.Output.Write("</table>");
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.End();
}
This is button click event for exporting
protected void btnExport_Click(object sender, EventArgs e)
{
ShowDetailsInExport s = new ShowDetailsInExport();
s.Export(Repeater1);
}
If needed this is my ASP.NET repeater creation
<div class="acrepeater" style="background-color:#efefef;width:500px;height:350px;margin-left:30%">
<table id="tblSuntech">
<asp:Repeater ID="Repeater1" runat="server" OnItemCommand="item_Command" >
<HeaderTemplate>
<thead >
<th style="border:1PX solid">Action</th>
<th style="border:1PX solid">CountryId</th>
<th style="border:1PX solid">CountryName</th>
<th style="border:1PX solid">Status</th>
<th style="border:1PX solid">Action</th>
<th ></th>
</thead>
</HeaderTemplate>
<ItemTemplate>
<%--OnClientClick="EditPop();return false;"--%>
<tr class="tr">
<td style="border:1PX solid">
<asp:LinkButton ID="LinkButton3" CssClass="tbl-id-btn" runat="server"
ToolTip="View" CausesValidation="false" CommandName="DashBoard"
CommandArgument='<%#Eval("CountryId")+","+ Eval("CountryName")%>' ForeColor="#0066FF">Edit</asp:LinkButton>
</td>
<td style="border:1PX solid"><%# Eval("CountryId")%></td>
<td style="border:1PX solid"><%# Eval("CountryName")%></td>
<td style="border:1PX solid"><%# Eval("Status")%></td>
<td style="border:1PX solid">
<asp:LinkButton ID="LinkButton1" CssClass="tbl-id-btn" style="width:100px" runat="server"
ToolTip="View" CausesValidation="false" CommandName="IsBlock"
CommandArgument='<%# Eval("[CountryId]")+","+Eval("Status")%>' ForeColor="Red"><%# Eval("[StatusMessage]")%></asp:LinkButton>
</td>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
</div>