Yes method works, however it does not open javascript dialog if i put it into seperate .cs file and call it as a function inside a button click as demonstrated below:
public void print_single_grid(GridView grid, Page page)
{
grid.PagerSettings.Visible = false;
grid.DataBind();
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
grid.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(get_print_header());
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>");
System.Web.UI.ScriptManager.RegisterStartupScript(page, this.GetType(), "key", "jsfunction();", true);
grid.PagerSettings.Visible = true;
grid.DataBind();
}
Above function in a part of my common.cs file and i call it in a button click event handler.