t转换不正确。由于某种原因,Is跳过了很多代码。很奇怪抱歉,我在VB中经常使用它,不知道C#转换发生了什么。原则上,您可以将其用作指南——主要功能如下:用于gridview.rows中的每一行,然后对其进行处理(将其放入一个表中,您可以在该表上呈现html

t转换不正确。由于某种原因,Is跳过了很多代码。很奇怪抱歉,我在VB中经常使用它,不知道C#转换发生了什么。原则上,您可以将其用作指南——主要功能如下:用于gridview.rows中的每一行,然后对其进行处理(将其放入一个表中,您可以在该表上呈现html,c#,asp.net,gridview,C#,Asp.net,Gridview,t转换不正确。由于某种原因,Is跳过了很多代码。很奇怪抱歉,我在VB中经常使用它,不知道C#转换发生了什么。原则上,您可以将其用作指南——主要功能如下:用于gridview.rows中的每一行,然后对其进行处理(将其放入一个表中,您可以在该表上呈现html,将其放入一个字符串变量中,您可以稍后导出到.csv,或者您拥有的其他内容)。看起来您需要调用BindData()再次导出。在导出代码中,替换GridView1.DataBind()带有BindData()EJC,我这样做了,它没有导出任何东西


t转换不正确。由于某种原因,Is跳过了很多代码。很奇怪抱歉,我在VB中经常使用它,不知道C#转换发生了什么。原则上,您可以将其用作指南——主要功能如下:
用于gridview.rows中的每一行,然后对其进行处理(将其放入一个表中,您可以在该表上呈现html,将其放入一个字符串变量中,您可以稍后导出到.csv,或者您拥有的其他内容)。看起来您需要调用
BindData()
再次导出。在导出代码中,替换
GridView1.DataBind()带有
BindData()EJC,我这样做了,它没有导出任何东西。当我点击按钮时,它什么也不做。我看到页面在轻弹,但现在没有其他内容正在生成一些代码。
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
        CellPadding="4"  ForeColor="#333333" 
        GridLines="None">
    <AlternatingRowStyle BackColor="White" />
    <Columns>
        <asp:BoundField DataField="GroupCategory" HeaderText="GroupCategory" 
            SortExpression="GroupCategory" />
        <asp:BoundField DataField="TotalCount" HeaderText="TotalCount" 
            SortExpression="TotalCount" />
    </Columns>
    <EditRowStyle BackColor="#7C6F57" />
    <FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
    <HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
    <PagerStyle BackColor="#666666" ForeColor="White" HorizontalAlign="Center" />
    <RowStyle BackColor="#E3EAEB" />
    <SelectedRowStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" />
    <SortedAscendingCellStyle BackColor="#F8FAFA" />
    <SortedAscendingHeaderStyle BackColor="#246B61" />
    <SortedDescendingCellStyle BackColor="#D4DFE1" />
    <SortedDescendingHeaderStyle BackColor="#15524A" />
</asp:GridView>
 public void BindData()
    {
        SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString);
        SqlDataAdapter da = new SqlDataAdapter("SELECT [GroupCategory], [TotalCount] FROM [Test] ", con);
        DataTable dt = new DataTable();
        da.Fill(dt);
        GridView1.DataSource = dt;
        // GV_InlineEditing.DataBind();
        this.GridView1.DataBind();
    }

    protected void btnExportExcel_Click(object sender, EventArgs e)
    {
        Response.Clear();
        Response.Buffer = true;
        Response.AddHeader("content-disposition",
         "attachment;filename=GridViewExport.csv");
        Response.Charset = "";
        Response.ContentType = "application/text";

        GridView1.AllowPaging = false;
        GridView1.DataBind();

        StringBuilder sb = new StringBuilder();
        for (int k = 0; k < GridView1.Columns.Count; k++)
        {
            //add separator
            sb.Append(GridView1.Columns[k].HeaderText + ',');
        }
        //append new line
        sb.Append("\r\n");
        for (int i = 0; i < GridView1.Rows.Count; i++)
        {
            for (int k = 0; k < GridView1.Columns.Count; k++)
            {
                //add separator
                sb.Append(GridView1.Rows[i].Cells[k].Text + ',');
            }
            //append new line
            sb.Append("\r\n");
        }
        Response.Output.Write(sb.ToString());
        Response.Flush();
        Response.End();

    }

    public override void VerifyRenderingInServerForm(Control control)
    {
        /* Verifies that the control is rendered */
    }
Public Shared Sub Export(ByVal fileName As String, ByVal gv As GridView, Optional ByVal IncludeFooter As Boolean = True)

        HttpContext.Current.Response.Clear()
        HttpContext.Current.Response.AddHeader("content-disposition", String.Format("attachment; filename={0}", fileName))
        HttpContext.Current.Response.ContentType = "application/vnd.ms-excel"
        HttpContext.Current.Response.Charset = "UTF-8"
        Dim sw As StringWriter = New StringWriter
        Dim htw As HtmlTextWriter = New HtmlTextWriter(sw)
        '  Create a form to contain the grid
        Dim table As Table = New Table
        '  add the header row to the table
        If (Not (gv.HeaderRow) Is Nothing) Then
            myGridview.PrepareControlForExport(gv.HeaderRow)
            table.Rows.Add(gv.HeaderRow)
        End If
        '  add each of the data rows to the table
        For Each row As GridViewRow In gv.Rows
            myGridview.PrepareControlForExport(row)
            table.Rows.Add(row)
        Next
        '  add the footer row to the table
        If IncludeFooter Then
            If (Not (gv.FooterRow) Is Nothing) Then
                myGridview.PrepareControlForExport(gv.FooterRow)
                table.Rows.Add(gv.FooterRow)
            End If
        End If
        '  render the table into the htmlwriter
        table.RenderControl(htw)
        '  render the htmlwriter into the response
        HttpContext.Current.Response.Write(Replace(sw.ToString, "'", "''"))

        HttpContext.Current.Response.End()
    End Sub

    ' Replace any of the contained controls with literals
    Private Shared Sub PrepareControlForExport(ByVal control As Control)
        Dim i As Integer = 0
        Do While (i < control.Controls.Count)
            Dim current As Control = control.Controls(i)
            If (TypeOf current Is LinkButton) Then
                control.Controls.Remove(current)
                control.Controls.AddAt(i, New LiteralControl(CType(current, LinkButton).Text))
            ElseIf (TypeOf current Is ImageButton) Then
                control.Controls.Remove(current)
                control.Controls.AddAt(i, New LiteralControl(CType(current, ImageButton).AlternateText))
            ElseIf (TypeOf current Is HyperLink) Then
                control.Controls.Remove(current)
                control.Controls.AddAt(i, New LiteralControl(CType(current, HyperLink).Text))
            ElseIf (TypeOf current Is DropDownList) Then
                control.Controls.Remove(current)
                control.Controls.AddAt(i, New LiteralControl(CType(current, DropDownList).SelectedItem.Text))
            ElseIf (TypeOf current Is CheckBox) Then
                control.Controls.Remove(current)
                control.Controls.AddAt(i, New LiteralControl(CType(current, CheckBox).Checked))
                'TODO: Warning!!!, inline IF is not supported ?
            End If
            If current.HasControls Then
                myGridview.PrepareControlForExport(current)
            End If
            i = (i + 1)
        Loop
    End Sub
public void ConvertDataSetToExcel(DataSet dataSet, string strTempFileName)
{
    XmlDocument xmlDataDoc = null;
    XslCompiledTransform xslTransform = new XslCompiledTransform();
    StreamReader srrReader = null;

    XmlTextReader xtrRdr = null;
    StringWriter stwWriter = null;
    StreamWriter srwWriter = null;

    xmlDataDoc = new XmlDocument();
    xmlDataDoc.LoadXml(dataSet.GetXml());
    srrReader = new StreamReader(path_to_embedded_xsl);
    xtrRdr = new XmlTextReader(srrReader);
    stwWriter = new StringWriter();
    xslTransform.Transform(xmlDataDoc, null, stwWriter);
    xslTransform.Transform(xmlDataDoc, null, stwWriter);
    srwWriter = new StreamWriter(strTempFileName);
    srwWriter.Write(stwWriter.ToString());
    srwWriter.Close();
}