繁体   English   中英

将嵌套的Gridview导出到Excel

[英]Export Nested Gridview into Excel

我有以下针对嵌套GridView UI设计。 据此,我想要一个将嵌套的Gridview导出到Excel中的解决方案。

嵌套的GridView 单击此处显示嵌套GridView的图像

<asp:GridView ID="Mastergrid" PageSize="20" AllowPaging="true" Width="100%" Height="100%" OnPageIndexChanging="Mastergrid_PageIndexChanging" runat="server" AutoGenerateColumns="false" CssClass="gridview" DataKeyNames="r_id" OnRowDataBound="Mastergrid_RowDataBound" ShowHeaderWhenEmpty="true">
            <Columns>
                <asp:TemplateField HeaderText="id" Visible="false">
                    <ItemTemplate>
                        <asp:Label ID="lblr_id" runat="server" Text='<%# Eval("r_id") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Reg. No">
                    <ItemTemplate>
                        <asp:Label ID="lblregid" runat="server" Text='<%# Eval("r_uid") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Name">
                    <ItemTemplate>
                        <asp:Label ID="lblname" runat="server" Text='<%# Eval("name") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Indos No.">
                    <ItemTemplate>
                        <asp:Label ID="lblindosno" runat="server" Text='<%# Eval("indos_no") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>                    
                <asp:TemplateField HeaderText="Course Infomation">                             
                    <ItemTemplate>                            

                        <asp:GridView ID="subgrid" ShowHeader="true" runat="server" AutoGenerateColumns="false" Width="100%" Height="100%" EmptyDataText="No Record found..!!" CssClass="gridview1">
                            <Columns>

                                <asp:TemplateField HeaderText="Course id" Visible="false" HeaderStyle-Width="5%" >
                                    <ItemTemplate>
                                        <asp:Label ID="Course_id" runat="server" Text='<%# Eval("Course_id") %>'></asp:Label>
                                    </ItemTemplate>
                                </asp:TemplateField>

                                <asp:TemplateField HeaderText="Course Name" HeaderStyle-Width="60%">
                                    <ItemTemplate>
                                        <asp:Label ID="lblcoursename" runat="server" Text='<%# Eval("course_name") %>'></asp:Label>
                                    </ItemTemplate>
                                </asp:TemplateField>


                                <asp:TemplateField HeaderText="Course Fees" >
                                    <ItemTemplate>
                                        <asp:Label ID="lblcoursefees" runat="server" Text='<%# Eval("course_fees") %>'></asp:Label>
                                    </ItemTemplate>
                                </asp:TemplateField>


                                <asp:TemplateField HeaderText="Course Date">
                                    <ItemTemplate>
                                        <asp:Label ID="lblcoursedate" runat="server" Text='<%# Eval("course_date","{0:dd-MM-yyyy}") %>'></asp:Label>
                                    </ItemTemplate>
                                </asp:TemplateField>
                            </Columns>
                        </asp:GridView>


                    </ItemTemplate>

                </asp:TemplateField>


            </Columns>

        </asp:GridView>

您需要使用FindControl查找嵌套的网格:

    protected void Mastergrid_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "exportNestedGrid")
        {
            //convert the CommandArgument
            int rowNumber = Convert.ToInt32(e.CommandArgument);

            //find the nested GridView
            GridView gridview = GridView1.Rows[rowNumber].FindControl("subgrid") as GridView;

            //do stuff with the nested GridView
            gridview.Visible = false;
        }
    }

为了获取rowNumber,可以将其与export按钮一起发送:

<asp:TemplateField>
    <ItemTemplate>
        <asp:Button ID="Button1" CommandArgument='<%# Container.DataItemIndex %>' CommandName="exportNestedGrid" runat="server" Text="Export nested GridView" />
    </ItemTemplate>
</asp:TemplateField>

我们可以将与简单gridview相同的Nested Gridview导出到excel中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM