I have been searching for a method to print data in radGrid Telerik and i found a way from Here As following:
Code Behind
radGrid.CurrentPageIndex = 0;
radGrid.ClientSettings.Scrolling.AllowScroll = false;
radGrid.AllowPaging = false;
radGrid.AllowFilteringByColumn = false;
radGrid.MasterTableView.GroupsDefaultExpanded = true;
radGrid.Rebind();
foreach (GridItem item in radGrid.MasterTableView.GetItems(new GridItemType[] { GridItemType.Pager, GridItemType.FilteringItem }))
item.Display = false;
RadAjaxPanel1.ResponseScripts.Add("PrintRadGrid('" + radGrid.ClientID + "')");
JavaScript:
function PrintRadGrid() {
var radGridE = $find('<%= radGrid.ClientID %>');
var previewWindow = window.open('about:blank', '', '', false);
var styleSheet = '<%= Telerik.Web.SkinRegistrar.GetWebResourceUrl(this.Page, radGrid.GetType(), String.Format("Telerik.Web.UI.Skins.{0}.Grid.{0}.css", radGrid.Skin)) %>';
var baseStyleSheet = '<%= Telerik.Web.SkinRegistrar.GetWebResourceUrl(this.Page, radGrid.GetType(), "Telerik.Web.UI.Skins.Grid.css") %>';
var htmlContent = "<html><head><link href = '" + styleSheet + "' rel='stylesheet' type='text/css'></link>";
htmlContent += "<link href = '" + baseStyleSheet + "' rel='stylesheet' type='text/css'></link></head>";
htmlContent = htmlContent + "<body>" + getOuterHTML(radGridE.get_element()) + "</body></html>";
previewWindow.document.open();
previewWindow.document.write(htmlContent);
previewWindow.document.close();
previewWindow.print();
if (!$telerik.isChrome) {
previewWindow.close();
}
}
The code is working well BUT it disables the Paging to print all pages. Now i want a way to Allow Paging again without refreshing the page.
How to set AllowPaging to true again without refresh the page?
Initiate a postback (preferably AJAX) after printing and enable paging in the code-behind. See how to initiate an ajaxRequest here: http://www.telerik.com/help/aspnet-ajax/ajax-client-side-api.html