User2008642861 posted
Hi nicklibee,
Based on your post, I suppose that you could not achieve your goal because your event could not achieve the correct GridView's ID.
Please add below code into your button click event.
Dim up As UpdatePanel = DirectCast(UpdatePanel1, UpdatePanel)
Dim gv As GridView = DirectCast(up.FindControl("gvDetails"), GridView)
So, you whole event may be below code.
Protected Sub btnPrint_Click(sender As Object, e As EventArgs)
Dim up As UpdatePanel = DirectCast(UpdatePanel1, UpdatePanel)
Dim gv As GridView = DirectCast(up.FindControl("gvDetails"), GridView)
gv.PagerSettings.Visible = False
gv.Visible = True
gv.AllowPaging = False
gv.DataSource = dt
gv.DataBind()
Dim sw As New StringWriter()
Dim hw As New HtmlTextWriter(sw)
gv.RenderControl(hw)
Dim gridHTML As String = sw.ToString().Replace("""", "'").Replace(System.Environment.NewLine, "")
Dim sb As 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>")
ScriptManager.RegisterStartupScript(Me, Me.[GetType](), "Print", sb.ToString(), True)
gv.PagerSettings.Visible = True
gv.DataBind()
gv.Visible = False
End Sub
Best regards,
Archer Wang