【问题标题】:Gridview has a runat="server" tagGridview 有一个 runat="server" 标签
【发布时间】:2014-08-22 18:47:46
【问题描述】:

我已将 iTextSharp 添加到“项目>...添加引用”并将它们添加到 using:

using iTextSharp.text;
using iTextSharp.text.html.simpleparser;
using iTextSharp.text.pdf;  

我已经在 aspx 中有一个 runat="server" 标记:

<asp:GridView ID="GridView1" runat="server"></asp:GridView>

但我在“GridView1.RenderControl(hw);”行得到错误代码

 Control 'MainContent_GridView1' of type 'GridView' must be placed inside a form tag with runat=server.

Button1_Click 代码:

protected void Button1_Click(Object sender,System.EventArgs e)
    {
        string connStr = ConfigurationManager.ConnectionStrings["PDFMDF"].ConnectionString;
        DataSet ds = new DataSet();
        try
        {
            string cmdStr = "SELECT * FROM [GridviewTable];";
            using (SqlConnection conn = new SqlConnection(connStr))
            {
                using (SqlCommand cmd = new SqlCommand(cmdStr, conn))
                {
                    conn.Open();
                    using (SqlDataAdapter da = new SqlDataAdapter(cmd))
                    {
                        da.Fill(ds);
                        GridView1.DataSource = ds;
                        GridView1.DataBind();
                    }
                    conn.Close();
                    cmd.Dispose();
                    conn.Dispose();
                }
            }
        }
        catch  (Exception ex)
        {
            TextBox1.Text = ex.ToString();
        }

        Response.ContentType = "application/pdf";
        Response.AddHeader("content-disposition", "attachment;filename=this.pdf");
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
        StringWriter sw = new StringWriter();
        HtmlTextWriter hw = new HtmlTextWriter(sw);
        GridView1.AllowPaging = false;
        GridView1.RenderControl(hw);
        StringReader sr = new StringReader(sw.ToString());
        Document PDFdoc = new Document(PageSize.A4, 10.0F, 10.0F, 10.0F, 0.0F);
        iTextSharp.text.html.simpleparser.HTMLWorker htmlparser =   new iTextSharp.text.html.simpleparser.HTMLWorker(PDFdoc);
        PdfWriter.GetInstance(PDFdoc, Response.OutputStream);
        PDFdoc.Open();
        htmlparser.Parse(sr);
        PDFdoc.Close();
        Response.Write(PDFdoc);
        Response.End();
    }

【问题讨论】:

    标签: asp.net pdf gridview response


    【解决方案1】:

    该错误意味着 GridView 必须在如下表单中:

    <form id="FormId" runat="server">
       <asp:GridView ID="GridView1" runat="server"></asp:GridView>
    </form>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-14
      • 1970-01-01
      • 2014-02-28
      • 2012-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多