0

私のウェブサイトから、メソッドを呼び出してレポートを生成するボタンがあります。コードは機能します。問題は、コードがすべてのグリッドビュー (3 つある) を同じタブに表示することです。ボタンをクリックすると、ドキュメントがダウンロードされますが、各グリッドビューが個別のタブに表示されるように、これにどのコードを追加できますか。タブ名はトップ 1、トップ 2、トップ 3 になります。明確にするために、現在すべてのグリッドビューがトップ 1 タブに表示されているため、さらに 2 つのタブ (トップ 2 とトップ 3) を作成し、gridview2 を配置する必要があります。上部 2 タブに、上部 3 タブに gridview3 があります。データセットは 1 つだけです。各テーブルを異なるワークシートに表示するようにループするには、どのコードを使用できますか?

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
    DataSet dataSet = new DataSet();

    SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ISALog1ConnectionString"].ToString());

    SqlCommand cmd = new SqlCommand("exec ProxyReport", conn);
    cmd.CommandTimeout = 200;

    SqlDataAdapter ad = new SqlDataAdapter(cmd);
    ad.Fill(dataSet);

    GridView1.DataSource = dataSet.Tables[0];
    GridView1.DataBind();
    GridView2.DataSource = dataSet.Tables[1];
    GridView2.DataBind();
    GridView3.DataSource = dataSet.Tables[2];
    GridView3.DataBind();

}
protected void Button1_Click(object sender, EventArgs e)
{
    string attachment = "attachment; filename=Top 1.xls";
    Response.ClearContent();
    Response.AddHeader("content-disposition", attachment);
    Response.Cache.SetCacheability(HttpCacheability.NoCache);
    Response.ContentType = "application/ms-excel";
    StringWriter sw = new StringWriter();
    HtmlTextWriter htw = new HtmlTextWriter(sw);
    GridView1.RenderControl(htw);
    GridView2.RenderControl(htw);
    GridView3.RenderControl(htw);
    Response.Write(sw.ToString());
    Response.End();
}
public override void VerifyRenderingInServerForm(Control control)
{

}


}
4

1 に答える 1

0

Export GridView to multiple Excel sheetの複製のように見えます。ただし、相互運用性を検討しているようです。

幸運を。

于 2012-07-12T21:39:08.833 に答える