protected void PrintAllPages(object sender, EventArgs e)
{
GridView1.AllowPaging = 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.AllowPaging = true;
GridView1.DataBind();
}
I followed the above code to print gridview all rows.
Now My Issue is i cant able to print all the gridview rows even i follow same code.
Below are the code that i followed.
My Page Load code.
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{ fillClaimDraft(); }
else
{
filterData();
}
}
FillClaimDraft Method.
public void fillClaimDraft()
{
try
{
Uri hostWeb = new Uri(Request.QueryString["SPHostUrl"]);
string CURRENCY_SYMBOL = string.Empty;
using (var clientContext = TokenHelper.GetS2SClientContextWithWindowsIdentity(hostWeb, Request.LogonUserIdentity))
{
Web web = clientContext.Web;
clientContext.Load(web);
clientContext.ExecuteQuery();
clientContext.Load(web.CurrentUser);
clientContext.ExecuteQuery();
string[] strings = clientContext.Web.CurrentUser.LoginName.Split('\\');
CURRENCY_SYMBOL = getBaseCurrencyByCurrentuser();
clientContext.Load(clientContext.Web);
List list = clientContext.Web.Lists.GetByTitle(VG.CLAIMS.HELPER.ClaimHelper.Lists.CLAIMMASTER);
clientContext.Load(list);
StringBuilder caml = new StringBuilder();
caml.Append("<View><Query><Where><And><Or><Or><Eq><FieldRef Name='Status' /><Value Type='Text'>Pending</Value></Eq><Eq><FieldRef Name='Status' /><Value Type='Text'>Reject</Value></Eq></Or><Eq><FieldRef Name='Status' /><Value Type='Text'>Approved</Value></Eq></Or><Eq><FieldRef Name='UserName' /><Value Type='User'>" + clientContext.Web.CurrentUser.Title + "</Value></Eq></And></Where><OrderBy><FieldRef Name='ID' Ascending='FALSE' /></OrderBy></OrderBy></Query>");
caml.Append("<RowLimit>100</RowLimit></View>");
CamlQuery query = new CamlQuery();
query.ViewXml = caml.ToString();
Microsoft.SharePoint.Client.ListItemCollection listItemsColl = list.GetItems(query);
clientContext.Load(listItemsColl);
clientContext.ExecuteQuery();
DataTable dtMain = new DataTable();
dtMain.Columns.Add("ID", Type.GetType("System.String"));
dtMain.Columns.Add("WFID", Type.GetType("System.String"));
dtMain.Columns.Add(VG.CLAIMS.HELPER.ClaimHelper.MaterialPacking.TITLE);
dtMain.Columns.Add(VG.CLAIMS.HELPER.ClaimHelper.ClaimMaster.CLAIM_TYPE);
dtMain.Columns.Add("ReqDate");
dtMain.Columns.Add(VG.CLAIMS.HELPER.ClaimHelper.ClaimMaster.CLAIM_AMOUNT);
dtMain.Columns.Add(VG.CLAIMS.HELPER.ClaimHelper.ClaimMainData.STATUS);
dtMain.Columns.Add("LinkUrl", typeof(string));
dtMain.Columns.Add("TravelID", typeof(string));
dtMain.Columns.Add("CashID", typeof(string));
dtMain.Columns.Add();
if (listItemsColl.Count > 0)
{
foreach (Microsoft.SharePoint.Client.ListItem listItem in listItemsColl)
{
DataRow dtRow = dtMain.NewRow();
if (listItem[VG.CLAIMS.HELPER.ClaimHelper.MaterialPacking.TITLE] != null)
{
dtRow["ID"] = listItem["ID"].ToString();
dtRow[VG.CLAIMS.HELPER.ClaimHelper.MaterialPacking.TITLE] = listItem[VG.CLAIMS.HELPER.ClaimHelper.MaterialPacking.TITLE].ToString();
dtRow[VG.CLAIMS.HELPER.ClaimHelper.ClaimMaster.CLAIM_TYPE] = listItem[VG.CLAIMS.HELPER.ClaimHelper.ClaimMaster.CLAIM_TYPE].ToString();
dtRow["ReqDate"] = DateTime.Parse(listItem["Created"].ToString().ToUpper()).ToShortDateString();
dtRow[VG.CLAIMS.HELPER.ClaimHelper.ClaimMaster.CLAIM_AMOUNT] = CURRENCY_SYMBOL + " " + double.Parse(listItem[VG.CLAIMS.HELPER.ClaimHelper.ClaimMaster.CLAIM_AMOUNT].ToString()).ToString("N2");
dtRow[VG.CLAIMS.HELPER.ClaimHelper.ClaimMainData.STATUS] = listItem[VG.CLAIMS.HELPER.ClaimHelper.ClaimMainData.STATUS].ToString();
dtRow["LinkUrl"] = string.Format("{1}/Pages/ClaimItemVew.aspx?ItemID={0}", listItem[VG.CLAIMS.HELPER.ClaimHelper.MaterialPacking.TITLE].ToString(), hostWeb);
dtRow["TravelID"] = (listItem["TravelID"] != null) ? listItem["TravelID"].ToString().ToUpper() : "";
dtRow["CashID"] = (listItem["CashAdvanceID"] != null) ? listItem["CashAdvanceID"].ToString() : "";
}
dtMain.Rows.Add(dtRow);
}
//GridView2.DataSource = dtMain;GridView2.DataBind();
BindGrid(dtMain);
ViewState["claimhistory"] = dtMain; //SAMPATH KUMAR 1-JULY-2016
}
else
{
DataRow dtRow = dtMain.NewRow();
dtRow["ID"] = "";
dtRow["WFID"] = "";
dtRow[VG.CLAIMS.HELPER.ClaimHelper.MaterialPacking.TITLE] = "";
dtRow[VG.CLAIMS.HELPER.ClaimHelper.ClaimMaster.CLAIM_TYPE] = "";
dtRow["ReqDate"] = "";
dtRow[VG.CLAIMS.HELPER.ClaimHelper.ClaimMaster.CLAIM_AMOUNT] = "";
dtRow[VG.CLAIMS.HELPER.ClaimHelper.ClaimMainData.STATUS] = "";
dtRow["LinkUrl"] = "";
dtRow["TravelID"] = "";
dtRow["CashID"] = "";
dtMain.Rows.Add(dtRow);
//GridView2.DataSource = dtMain;GridView2.DataBind();
BindGrid(dtMain);
ViewState["claimhistory"] = dtMain; //SAMPATH KUMAR 1-JULY-2016
int TotalColumns = GridView2.Rows[0].Cells.Count;
GridView2.Rows[0].Cells.Clear();
GridView2.Rows[0].Cells.Add(new TableCell());
GridView2.Rows[0].Cells[0].ColumnSpan = TotalColumns;
GridView2.Rows[0].Cells[0].Text = @"<span style=""color: #F31416""><strong>No Request(s) Found.</strong></span>";
GridView2.Rows[0].Cells[0].HorizontalAlign = HorizontalAlign.Center;
//int TotalColumns1 = GridView1.Rows[0].Cells.Count;
//GridView1.Rows[0].Cells.Clear();
//GridView1.Rows[0].Cells.Add(new TableCell());
//GridView1.Rows[0].Cells[0].ColumnSpan = TotalColumns1;
//GridView1.Rows[0].Cells[0].Text = @"<span style=""color: #F31416""><strong>No Request(s) Found.</strong></span>";
//GridView1.Rows[0].Cells[0].HorizontalAlign = HorizontalAlign.Center;
}
}
}
catch (Exception ex)
{
// showMessage(ex.Message);
}
}
filterdata() method as follows
public void filterData()
{
DataTable dtSearchdata = new DataTable(); DataTable dtCliamhistory = new DataTable();
if (ViewState["claimhistory"] != null)
{
dtCliamhistory = (DataTable)ViewState["claimhistory"];
if (dtCliamhistory.Rows.Count > 0)
{
if (ddlsearchVG.SelectedValue.ToString() != "SS")
{
#region claimidVG
if (ddlsearchVG.SelectedValue.ToString() == "claimidVG")
{
var query = from myRow in dtCliamhistory.AsEnumerable()
where (myRow.Field<string>("TITLE").Contains(txtclaimid.Text))
select myRow;
try
{
//dtSearchdata = query.CopyToDataTable();
//GridView2.DataSource = dtSearchdata; GridView2.DataBind();
DataView DV = query.AsDataView();
if (DV.Count > 0)
{
dtSearchdata = query.CopyToDataTable();
BindGrid(dtSearchdata);
//GridView2.DataSource = dtSearchdata; GridView2.DataBind();
}
else
{
dtCliamhistory = null;
BindGrid(dtCliamhistory);
//GridView2.DataSource = dtCliamhistory; GridView2.DataBind();
}
}
catch { }
finally { }
}
#endregion
#region claimtypeVG
if (ddlsearchVG.SelectedValue.ToString() == "claimtypeVG")
{
if (txtclaimtype.SelectedValue.ToString() != "0")
{
var query = from myRow in dtCliamhistory.AsEnumerable()
where (myRow.Field<string>("ClaimType").Contains(txtclaimtype.SelectedValue.ToString()))
select myRow;
try
{
dtSearchdata = query.CopyToDataTable();
BindGrid(dtSearchdata);
//GridView2.DataSource = dtSearchdata; GridView2.DataBind();
}
catch { }
finally { }
}
else
{
BindGrid(dtCliamhistory);
//GridView2.DataSource = dtCliamhistory; GridView2.DataBind();
}
}
#endregion
#region statusVG
if (ddlsearchVG.SelectedValue.ToString() == "statusVG")
{
if (ddlstatus.SelectedItem.Text == "Select")
{
var query = from myRow in dtCliamhistory.AsEnumerable()
where (myRow.Field<string>("Status").Contains("Approved"))
|| (myRow.Field<string>("Status").Contains("Pending"))
|| (myRow.Field<string>("Status").Contains("Rejected"))
select myRow;
try
{
DataView DV = query.AsDataView();
if (DV.Count > 0)
{
dtSearchdata = query.CopyToDataTable();
BindGrid(dtSearchdata);
//GridView2.DataSource = dtSearchdata; GridView2.DataBind();
}
else
{
dtCliamhistory = null;
BindGrid(dtCliamhistory);
//GridView2.DataSource = dtCliamhistory; GridView2.DataBind();
}
}
catch { }
finally { }
}
else
{
var query = from myRow in dtCliamhistory.AsEnumerable()
where (myRow.Field<string>("Status").Contains(ddlstatus.SelectedItem.Text))
select myRow;
try
{
DataView DV = query.AsDataView();
if (DV.Count > 0)
{
dtSearchdata = query.CopyToDataTable();
//GridView2.DataSource = dtSearchdata; GridView2.DataBind();
BindGrid(dtSearchdata);
}
else
{
dtCliamhistory = null;
//GridView2.DataSource = dtCliamhistory; GridView2.DataBind();
BindGrid(dtCliamhistory);
}
}
catch { }
finally { }
}
}
#endregion
#region claimrequireddateVG
if (ddlsearchVG.SelectedValue.ToString() == "claimrequireddateVG")
{
if (calendar_input.Text != "" && calendar_input2.Text != "")
{
DateTime Datefrom = DateTime.Parse(calendar_input.Text);
DateTime Dateto = DateTime.Parse(calendar_input2.Text);
if (Datefrom < Dateto)
{
DataView dv = new DataView();
dv = dtCliamhistory.DefaultView;
dv.RowFilter = " (ReqDate >= #" + Convert.ToDateTime(calendar_input.Text).ToString("MM/dd/yyyy") + "# And ReqDate <= #" + Convert.ToDateTime(calendar_input2.Text).ToString("MM/dd/yyyy") +
"# ) ";
dtSearchdata = dv.ToTable();
if (dtSearchdata.Rows.Count > 0)
{
//GridView2.DataSource = dtCliamhistory;GridView2.DataBind();
BindGrid(dtCliamhistory);
}
else
{
dtCliamhistory = null;
//GridView2.DataSource = dtCliamhistory; GridView2.DataBind();
BindGrid(dtCliamhistory);
}
}
else
{
}
}
else
{
calendar_input.Text = ""; calendar_input2.Text = "";
//GridView2.DataSource = dtCliamhistory; GridView2.DataBind();
BindGrid(dtCliamhistory);
}
}
#endregion
}
else
{
ViewState["filterdeclaimhistory"] = dtCliamhistory;
BindGrid(dtCliamhistory);
//GridView2.DataSource = dtCliamhistory;GridView2.DataBind();
}
}
}
}
Below is my print gridview rows code(reference from your solution).
protected void btnserver_Click(object sender, EventArgs e)
{
#region SERVER CODE1 PRINT GRIDVIEW ROWS
GridView2.AllowPaging = false;
//filterData();
GridView2.DataBind();
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
GridView2.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());
GridView2.PagerSettings.Visible = true;
//filterData();
GridView2.DataBind();
#endregion
}
Plz let me know the solution as per above concept of coding....
Thank you