首页 > 解决方案 > 我正在尝试将网格数据导出为 CSV,但未显示 Audiofilename 列数据

问题描述

我正在尝试将网格数据导出到 asp.net 中的 csv 文件,但我已成功导出,但音频文件名列数据未显示在下载的文件中(它是 TemplateField 标记中的按钮,我需要在 csv 文件中打印按钮文本),我忘记了什么添加 ?如何解决这个问题?谢谢

.aspx 代码

 <asp:GridView ID="GridView1" Font-Size="Medium" CssClass="mGrid" runat="server"
                            HeaderStyle-CssClass="header-center" PageSize="15"
                            AutoGenerateColumns="false" AllowPaging="True" AllowSorting="True"
                            OnRowCommand="GridView1_RowCommand" OnRowDataBound="GridView1_RowDataBound" OnPageIndexChanging="GridView1_PageIndexChanging">

                            <Columns>
                                <%--<asp:BoundField DataField="ID" HeaderText="ID" ItemStyle-ForeColor="White" />--%>
                                <asp:TemplateField>
                                    <ItemTemplate>
                                        <asp:Label ID="lblID" runat="server" Text='<%#Eval("Id")%>' CommandArgument='<%#Eval("Id")%>' Visible="false">
                                        </asp:Label>
                                    </ItemTemplate>
                                </asp:TemplateField>

                                <asp:BoundField DataField="Name" HeaderText="Vendor Name" />
                                <asp:BoundField DataField="AudFileSize" HeaderText="AudFileSize" />
                                <asp:BoundField DataField="AudFileDuration" HeaderText="AudFileDuration" />

                              <%--  <asp:TemplateField HeaderText="Audio FileName">
                                    <ItemTemplate>

                                        <asp:Button ID="btnAudioFileName"
                                            Text='<%#System.IO.Path.GetFileNameWithoutExtension(Eval("AudioFileName").ToString())%>'
                                            runat="server" CommandArgument='<%#Eval("AudioFileName")%>'
                                            class="btn btn-link" CommandName="AudioFileName" />
                                        <%-- <sup><asp:Label ID ="lblrepetedCount"  Text='<%#Eval("Reject")%>' runat="server"
                                            CommandArgument='<%#Eval("Reject")%>'  CommandName="Reject"></asp:Label></sup>--%>
                                   <%-- </ItemTemplate>
                                </asp:TemplateField>--%>

                                 <asp:TemplateField HeaderText="Audio FileName">
                                    <ItemTemplate>

                                        <asp:Button ID="btnAudioFileName"
                                            Text='<%#System.IO.Path.GetFileNameWithoutExtension(Eval("AudioFileName").ToString())%>'
                                            runat="server" CommandArgument='<%#Eval("AudioFileName")%>'
                                            class="btn btn-link"  CommandName="AudioFileName" />
                                        <%-- <sup><asp:Label ID ="lblrepetedCount"  Text='<%#Eval("Reject")%>' runat="server"
                                            CommandArgument='<%#Eval("Reject")%>'  CommandName="Reject"></asp:Label></sup>--%>
                                    </ItemTemplate>
                                </asp:TemplateField>


                                <%--<asp:BoundField DataField="FirstName" HeaderText="Physician Name" />--%>
                                <%--<asp:BoundField DataField="PhysicianID" HeaderText="PhysicianID" />--%>

                                <asp:BoundField DataField="MrnNo" HeaderText="MrnNo" NullDisplayText=" " />
                                <asp:BoundField DataField="PatientName" HeaderText="PatientName" NullDisplayText=" "/>
                                <asp:BoundField DataField="PhysicianName" HeaderText="PhysicianName" />

                                <asp:BoundField DataField="Reject" HeaderText="Reject" Visible="false" />
                                <%--<asp:BoundField DataField="BucketName" HeaderText="Bucket Name" Visible="false" />--%>

                                <asp:TemplateField Visible="false">
                                    <ItemTemplate>
                                        <asp:Label ID="lblBucketName" runat="server" Text='<%#Eval("BucketName")%>' CommandArgument='<%#Eval("BucketName")%>' Visible="false">
                                        </asp:Label>
                                    </ItemTemplate>
                                </asp:TemplateField>
                            </Columns>
                        </asp:GridView>

.cs 代码在这里

  protected void btnExportToCSV_Click(object sender, EventArgs e)
        {
            ExportGridToCSV();
        }
        private void ExportGridToCSV()
        {

            //To Export all pages
            GridView1.AllowPaging = false;
            FillData();
            Response.Clear();
            Response.Buffer = true;
            Response.AddHeader("content-disposition", "attachment;filename=Transcribeworkdetails.csv");
            Response.Charset = "";
            Response.ContentType = "application/text";
            GridView1.AllowPaging = false;
            GridView1.DataBind();
         
            string[] hiddenCols = { "", "Reject" };


            StringBuilder columnbind = new StringBuilder();

            for (int k = 0; k < GridView1.Columns.Count; k++)
            {
              bool isHidden = true;
                foreach (string str in hiddenCols)
                {
                    if (GridView1.Columns[k].HeaderText == str)
                    {
                        isHidden = false;
                        break;
                    }
                }
                if (isHidden)
                    columnbind.Append(GridView1.Columns[k].HeaderText + ',');
            }

            columnbind.Append("\r\n");
            for (int i = 0; i < GridView1.Rows.Count; i++)
            {
                for (int k = 0; k < GridView1.Columns.Count; k++)
                {
                   

                    bool isHidden = true;
                    foreach (string str in hiddenCols)
                    {
                        if (GridView1.Columns[k].HeaderText == str)
                        {

                            isHidden = false;
                            break;
                        }

                    }
                    if (isHidden)
                    {
                        
                        columnbind.Append(GridView1.Rows[i].Cells[k].Text + ',');

                    }
                }

                columnbind.Append("\r\n");
            }
            Response.Output.Write(columnbind.ToString());
            Response.Flush();
            Response.End();
        }

标签: c#asp.netasp.net-coreexport-to-csv

解决方案


推荐阅读