public override void InstantiateIn(Control container) { Label lbl = new Label(); lbl.DataBinding += label_DataBinding; container.Controls.Add(lbl); } void label_DataBinding(object sender, System.EventArgs e) { Label lbl = (Label)sender; GridDataItem dataItem = lbl.NamingContainer as GridDataItem; DataRowView drv = (DataRowView)dataItem.DataItem; RefItem item = Item.refdef.ItemsFlat.Find(m => m.Id == drv[Item.user_name].ToGuid()); if (item == null) { lbl.Text = ""; return; } lbl.Text = item.Caption; }
protected void RadGridImages_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e) { List<Business.Logic.BusinessObjects.ArtistImage> lst = new List<Business.Logic.BusinessObjects.ArtistImage>(); int aid = -1; bool isOK = int.TryParse(this.HiddenArtistID.Value, out aid); if (isOK) { lst = artistImageManager.Get(aid); if (lst != null) { this.RadGridImages.DataSource = lst; } else { if (this.RadGridImages.DataSourceID == "") { this.RadGridImages.DataSource = new string[] { }; } } } if (!string.IsNullOrEmpty(gridMessage)) { DisplayMessage(gridMessage); } } private void DisplayMessage(string text) { RadGridImages.Controls.Add(new LiteralControl(string.Format("<span style='color:red'>{0}</span>", text))); }
Hi,
With the help of the posts in http://www.telerik.com/community/forums/aspnet/grid/72051-radgrid-print.aspx#1532370 I could print the entire contents of radgrid in Internet Explorer and mozilla .But I am not able to print the radgrid of certain web pages of the application in same version of mozilla while able to do that in internet explorer.For those pages, the below function PrintRadGrid returns null for $find(radGridId).
For the non-working pages , if i put a alert as the first line of the function PrintRadGrid , then it is working
Could any body please explain why this happens and how to make it working ...
function getOuterHTML(obj) {
if (typeof (obj.outerHTML) == "undefined") {
var divWrapper = document.createElement("div");
var copyOb = obj.cloneNode(true);
divWrapper.appendChild(copyOb);
return divWrapper.innerHTML
}
else
return obj.outerHTML;
}
function PrintRadGrid(radGridId) {
var radGrid = $find(radGridId);
var previewWnd = window.open('about:blank', '', '', false);
var sh = '<%# ClientScript.GetWebResourceUrl(grdName.GetType(),String.Format("Telerik.Web.UI.Skins.{0}.Grid.{0}.css",grdName.Skin)) %>';
var styleStr = "<html><head><link href = '" + sh + "' rel='stylesheet' type='text/css'></link></head>";
var htmlcontent = styleStr + "<body>" + getOuterHTML(radGrid.get_element().parentNode) + "</body></html>";
previewWnd.document.open();
previewWnd.document.write(htmlcontent);
previewWnd.document.close();
previewWnd.print();
previewWnd.close();
radGrid.get_masterTableView().fireCommand("EnablePaging", "");
}
And in code behind
RadPnl.ResponseScripts.Add("PrintRadGrid('" + grdNmae.ClientID + "')");
Thanks
<telerik:RadGrid ID="RadGridResources" runat="server" Width="950px" ShowStatusBar="true" AutoGenerateColumns="False" PageSize="7" AllowSorting="True" AllowMultiRowSelection="True" AllowPaging="True"> <PagerStyle Mode="NumericPages"></PagerStyle> <MasterTableView Width="100%" DataKeyNames="IDResource" AllowMultiColumnSorting="True" HierarchyDefaultExpanded="true"> <DetailTables> <telerik:GridTableView DataKeyNames="IDSlot" Name="Slot" Width="100%"> <Columns> <telerik:GridClientSelectColumn HeaderStyle-Width="40px" UniqueName="CheckboxSelectIDSlotColumn" > <HeaderStyle Width="40px" /> </telerik:GridClientSelectColumn> <telerik:GridBoundColumn SortExpression="IDSlot" HeaderText="IDSlot" HeaderButtonType="TextButton" DataField="IDSlot"> </telerik:GridBoundColumn> <telerik:GridBoundColumn SortExpression="Code" HeaderText="Code" HeaderButtonType="TextButton" DataField="Code"> </telerik:GridBoundColumn> <telerik:GridBoundColumn SortExpression="Description" HeaderText="Description" HeaderButtonType="TextButton" DataField="Description"> </telerik:GridBoundColumn> </Columns> </telerik:GridTableView> </DetailTables> <Columns> <telerik:GridBoundColumn SortExpression="IDResource" HeaderText="IDResource" HeaderButtonType="TextButton" DataField="IDResource"> </telerik:GridBoundColumn> <telerik:GridBoundColumn SortExpression="Code" HeaderText="Code" HeaderButtonType="TextButton" DataField="Code"> </telerik:GridBoundColumn> <telerik:GridBoundColumn SortExpression="Description" HeaderText="Description" HeaderButtonType="TextButton" DataField="Description"> </telerik:GridBoundColumn> </Columns> </MasterTableView> <ClientSettings enablePostBackOnRowClick="true"> <ClientEvents /> <Selecting AllowRowSelect="true" /> </ClientSettings> </telerik:RadGrid>Protected Sub RadGridResources_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles RadGridResources.SelectedIndexChanged Try Dim selectedItems As New ArrayList Dim idSlot As Long For i = 0 To RadGridResources.SelectedItems.Count - 1 Dim dataItem As GridDataItem = RadGridResources.SelectedItems(i) idSlot = dataItem("IDSlot").Text selectedItems.Add(idSlot) Next 'TO DO Catch ex As Exception End Try End Sub