Control 'ContentPlaceHolder1_GridView1' of type 'GridView' must be placed inside a form tag with runat=server.
Printable View
Control 'ContentPlaceHolder1_GridView1' of type 'GridView' must be placed inside a form tag with runat=server.
توي تگ فرم خودتون از runat استفاده كنيد
GridView1.PagerSettings.Visible = false;
GridView1.DataBind();
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
GridView1.RenderControl(hw);
string gridHTML = sw.ToString().Replace("\"", "'")
.Replace(System.Environment.NewLine, "");
StringBuilder sb = new StringBuilder();
sb.Append("<script type = 'text/javascript'>");
sb.Append("window.onload = new function(){");
sb.Append("var printWin = window.open('', '', 'left=0");
sb.Append(",top=0,width=1000,height=600,status=0') ;");
sb.Append("printWin.document.write(\"");
sb.Append(gridHTML);
sb.Append("\");");
sb.Append("printWin.document.close();");
sb.Append("printWin.focus();");
sb.Append("printWin.print();");
sb.Append("printWin.close();};");
sb.Append("</script>");
ClientScript.RegisterStartupScript(this.GetType(), "GridPrint", sb.ToString());
GridView1.PagerSettings.Visible = true;
GridView1.DataBind();
زمانی که از کد بالا اجرا میشه اون خطا داده میشه
از چه کدی داره خطا میگیره!:متفکر:
دوست عزیز شما باید گرید ویو رو داخل تگ " Form runat="server بزارید.
چیزی که هست دستکاری گرید باعث خطا شده یا توی تگ فرم چنتا شده
اروری که شما گذاشتید اینو میگه که باید داخل فرم از runat استفاده کنید حالا گرید خودتونو داخل panel بذارید و به پنل قابلیت runat بدید ببینید درست میشه یا نه.این راهی که دارم میگم بر اساس اروری که شما گذاشتید .
موفق باشید
شما باید تابع VerifyRenderingInServerForm رو override کنین اون هم به خاطر استفاده از تابع RenderControl .اینجا گفته شده