Click here to Skip to main content
15,918,125 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
hii all i am having a griedview which i am trying to export to excel.The same code
is running successfully in other web application but is giving following error:
The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>).
<pre lang="xml"><div class="GridContainer">
                    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                        <ContentTemplate>
                            <asp:GridView ID="gridcomplaint" runat="server" AutoGenerateColumns="False" AutoGenerateEditButton="True"
                                DataKeyNames="ComplaintNo" OnRowCancelingEdit="gridcomplaint_RowCancelingEdit"
                                OnRowEditing="gridcomplaint_RowEditing" OnRowUpdating="gridcomplaint_RowUpdating"
                                CellPadding="4" EmptyDataText="No Data Available!!" ForeColor="#333333" GridLines="None"
                                CellSpacing="2" AllowPaging="True" HorizontalAlign="Center" Width="100%"
                                onpageindexchanging="gridcomplaint_PageIndexChanging">
                                <RowStyle BackColor="#F7F6F3" ForeColor="#333333" HorizontalAlign="Center" />
                                <EmptyDataRowStyle Font-Bold="false" Font-Names="Arial" ForeColor="Red" />
                                <Columns>
                                    <asp:TemplateField HeaderText="ComplaintNo">
                                        <ItemTemplate>
                                            <%# Eval("ComplaintNo")%>
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="OutletName">
                                        <ItemTemplate>
                                            <%# Eval("OutletName")%>
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="RegionName">
                                        <ItemTemplate>
                                            <%# Eval("RegionName")%>
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="Status">
                                        <ItemTemplate>
                                            <%# Eval("ComplaintStatus")%>
                                        </ItemTemplate>
                                        <EditItemTemplate>
                                            <asp:DropDownList ID="ddlstatus" runat="server">
                                                <asp:ListItem>Solved</asp:ListItem>
                                                <asp:ListItem>Pending</asp:ListItem>
                                            </asp:DropDownList>
                                        </EditItemTemplate>
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="DocketNo By AMC">
                                        <ItemTemplate>
                                            <%# Eval("DocketNo")%>
                                        </ItemTemplate>
                                        <EditItemTemplate>
                                            <asp:TextBox ID="txtdocket" runat="server" Text=' <%# Eval("DocketNo")%>'></asp:TextBox>
                                        </EditItemTemplate>
                                    </asp:TemplateField>
                                </Columns>
                                <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
                                <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
                                <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" Font-Underline="true" />
                                <EditRowStyle BackColor="#999999" />
                                <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
                            </asp:GridView>
                             <i>You are viewing page
        <%=gridcomplaint.PageIndex + 1%>
        of
        <%=gridcomplaint.PageCount%>
        </i>
                        </ContentTemplate>
                    </asp:UpdatePanel>
                </div>



the code i have written is:
string attachment = "attachment; filename=ForwardComplaint.xls";
       Response.ClearContent();
       Response.AddHeader("content-disposition", attachment);
       Response.ContentType = "application/ms-excel";
       StringWriter sw = new StringWriter();
       HtmlTextWriter htw = new HtmlTextWriter(sw);
       // Create a form to contain the grid
       HtmlForm frm = new HtmlForm();
       gridcomplaint.Parent.Controls.Add(frm);
       frm.Attributes["runat"] = "server";
       frm.Controls.Add(gridcomplaint);
       frm.RenderControl(htw);
       //GridView1.RenderControl(htw);
       Response.Write(sw.ToString());
       Response.End();
Posted

1 solution

You can export your data to excel at client side as well (as long as you have no server-side-specific logic to be implemented). Here is the link.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900