Hi, I'm hoping someone out there can help me...
I've got a radgrid and in the <CommandItemTemplate> I have a button with CommandName="ExportToExcel"
... In the code behind, I capture the radgrid1.ItemCommand
Select Case e.CommandName
but whenever I hit the button, I get an error within what I assume is part of the Telerik code...
Microsoft JScript runtime error: Unable to get value of the property 'Cols': object is null or undefined
I've got a radgrid and in the <CommandItemTemplate> I have a button with CommandName="ExportToExcel"
... In the code behind, I capture the radgrid1.ItemCommand
Select Case e.CommandName
Case "ExportToExcel"RadGrid1.ExportSettings.ExportOnlyData = True
RadGrid1.ExportSettings.IgnorePaging = True
RadGrid1.ExportSettings.OpenInNewWindow = TrueRadGrid1.MasterTableView.ExportToExcel()
but whenever I hit the button, I get an error within what I assume is part of the Telerik code...
Microsoft JScript runtime error: Unable to get value of the property 'Cols': object is null or undefined
5 Answers, 1 is accepted
0
Richard
Top achievements
Rank 1
answered on 20 Jan 2012, 10:36 PM
Scott:
Are you enabling the built in "Excel" export button, or attempting to add one of your own?
See the Grid/Export to ExcelML live demo at http://demos.telerik.com/aspnet-ajax/grid/examples/generalfeatures/excelmlexport/defaultcs.aspx and note that you enable the built-in functionality using the <CommandItemSettings ShowExportToExcelButton="true" /> as follows:
Then, you don't have to worry about determining which button was clicked server-side. ExportToExcel() is called under cover.
Hope this helps!
Are you enabling the built in "Excel" export button, or attempting to add one of your own?
See the Grid/Export to ExcelML live demo at http://demos.telerik.com/aspnet-ajax/grid/examples/generalfeatures/excelmlexport/defaultcs.aspx and note that you enable the built-in functionality using the <CommandItemSettings ShowExportToExcelButton="true" /> as follows:
<telerik:RadGrid ID="RadGrid1" runat="server" DataSourceID="SqlDataSource1" GridLines="None" AllowPaging="true" OnExcelMLExportRowCreated="RadGrid1_ExcelMLExportRowCreated" OnExcelMLExportStylesCreated="RadGrid1_ExcelMLExportStylesCreated"> <ExportSettings ExportOnlyData="true" IgnorePaging="true" OpenInNewWindow="true"> <Excel Format="ExcelML" /> </ExportSettings> <MasterTableView DataKeyNames="OrderID,ProductID" DataSourceID="SqlDataSource1" CommandItemDisplay="Top"> <CommandItemSettings ShowExportToExcelButton="true" /> </MasterTableView></telerik:RadGrid>Then, you don't have to worry about determining which button was clicked server-side. ExportToExcel() is called under cover.
Hope this helps!
0
Scott
Top achievements
Rank 1
answered on 23 Jan 2012, 12:35 PM
Hi Jumpstart - thanks for the effort :)
I'm using my own button because I have a few custom controls that live in the command item template tag (custom search on fields that aren't displayed in the radgrid etc.) and when I use the <CommandItemSettings ShowExportToExcelButton="true" />
The telerik 'Export to excel' button doesn't display.
I tried getting round that problem without success, so I thought I'd use my own button. And now I'm hitting this strange 'Cols' issue.
I also tried using your example below, but the only difference I can see is this bit :
and this part of the radgrid tag:
error BC30456: 'radgridContacts_ExcelMLExportRowCreated' is not a member of 'ASP.controls_ui_contacts_ascx'.
I assume it should have some code behind ?
If I completely remove my <CommandItemTemplate> column - the ShowExportToExcelButton appears, but I still get the same error :
Any advice greatly appreciated...
I'm using my own button because I have a few custom controls that live in the command item template tag (custom search on fields that aren't displayed in the radgrid etc.) and when I use the <CommandItemSettings ShowExportToExcelButton="true" />
The telerik 'Export to excel' button doesn't display.
I tried getting round that problem without success, so I thought I'd use my own button. And now I'm hitting this strange 'Cols' issue.
I also tried using your example below, but the only difference I can see is this bit :
<ExportSettings ExportOnlyData="true" IgnorePaging="true" OpenInNewWindow="true"> <Excel Format="ExcelML" /> </ExportSettings>
and this part of the radgrid tag:
OnExcelMLExportRowCreated="radgridContacts_ExcelMLExportRowCreated" OnExcelMLExportStylesCreated="radgridContacts_ExcelMLExportStylesCreatedbut the above line throws me an error when I include it:
error BC30456: 'radgridContacts_ExcelMLExportRowCreated' is not a member of 'ASP.controls_ui_contacts_ascx'.
I assume it should have some code behind ?
If I completely remove my <CommandItemTemplate> column - the ShowExportToExcelButton appears, but I still get the same error :
Export to Excel - 'Cols' is null or undefined
Any advice greatly appreciated...
0
Scott
Top achievements
Rank 1
answered on 24 Jan 2012, 05:26 PM
Any suggestions from the Telerik admins ? (please?!)
0
Richard
Top achievements
Rank 1
answered on 24 Jan 2012, 05:48 PM
Scott:
Here's a sample project that uses an <asp:Button ID="Button1" CssClass="button" Width="150px" Text="Export to Excel" OnClick="Button1_Click" runat="server" /> to initiate the export to Excel.
Hope this helps!
Default.aspx:
Default.aspx.cs:
See the form in the "radgrid_excel_export.png".
Cheers!
Here's a sample project that uses an <asp:Button ID="Button1" CssClass="button" Width="150px" Text="Export to Excel" OnClick="Button1_Click" runat="server" /> to initiate the export to Excel.
Hope this helps!
Default.aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Default" %><%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title>Export RadGrid Contents to Excel</title> <telerik:RadStyleSheetManager ID="RadStyleSheetManager1" runat="server" /></head><body> <form id="form1" runat="server"> <telerik:RadScriptManager ID="RadScriptManager1" runat="server"> <Scripts> <%--Needed for JavaScript IntelliSense in VS2010--%> <%--For VS2008 replace RadScriptManager with ScriptManager--%> <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.Core.js" /> <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQuery.js" /> <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQueryInclude.js" /> </Scripts> </telerik:RadScriptManager> <!-- content start --> <div class="module" style="height: 110px; width: 92%"> <asp:CheckBox ID="CheckBox1" Text="Export only data" runat="server"></asp:CheckBox> <br /> <asp:CheckBox ID="CheckBox2" Text="Ignore paging (exports all pages)" runat="server"> </asp:CheckBox> <br /> <asp:CheckBox ID="CheckBox3" Text="Open exported data in new browser window" runat="server"> </asp:CheckBox> <br /> <br /> <asp:Button ID="Button1" CssClass="button" Width="150px" Text="Export to Excel" OnClick="Button1_Click" runat="server"></asp:Button> </div> <br /> <script type="text/javascript"> function onRequestStart(sender, args) { if (args.get_eventTarget().indexOf("ExportToExcelButton") >= 0 ){ args.set_enableAjax(false); } } </script> <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> <ClientEvents OnRequestStart="onRequestStart" /> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="RadGrid1"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadGrid1" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager> <div> <telerik:RadGrid ID="RadGrid1" DataSourceID="SqlDataSource1" AllowSorting="True" AllowPaging="True" PageSize="10" runat="server" GridLines="None" Width="95%" > <MasterTableView AutoGenerateColumns="False" DataKeyNames="EmployeeID" DataSourceID="SqlDataSource1" CommandItemDisplay="Top"> <PagerStyle Mode="NextPrevNumericAndAdvanced" /> <RowIndicatorColumn Visible="True" FilterControlAltText="Filter RowIndicator column"> <HeaderStyle Width="20px"></HeaderStyle> </RowIndicatorColumn> <ExpandCollapseColumn Visible="True" FilterControlAltText="Filter ExpandColumn column"> <HeaderStyle Width="20px"></HeaderStyle> </ExpandCollapseColumn> <Columns> <telerik:GridBoundColumn DataField="EmployeeID" DataType="System.Int32" FilterControlAltText="Filter EmployeeID column" HeaderText="EmployeeID" ReadOnly="True" SortExpression="EmployeeID" UniqueName="EmployeeID"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="LastName" FilterControlAltText="Filter LastName column" HeaderText="LastName" SortExpression="LastName" UniqueName="LastName"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="FirstName" FilterControlAltText="Filter FirstName column" HeaderText="FirstName" SortExpression="FirstName" UniqueName="FirstName"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Title" FilterControlAltText="Filter Title column" HeaderText="Title" SortExpression="Title" UniqueName="Title"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="HomePhone" FilterControlAltText="Filter HomePhone column" HeaderText="HomePhone" SortExpression="HomePhone" UniqueName="HomePhone"> </telerik:GridBoundColumn> </Columns> <EditFormSettings> <EditColumn FilterControlAltText="Filter EditCommandColumn column"> </EditColumn> </EditFormSettings> </MasterTableView> <FilterMenu EnableImageSprites="False"> <WebServiceSettings> <ODataSettings InitialContainerName=""> </ODataSettings> </WebServiceSettings> </FilterMenu> <HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Default"> <WebServiceSettings> <ODataSettings InitialContainerName=""> </ODataSettings> </WebServiceSettings> </HeaderContextMenu> </telerik:RadGrid> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>" SelectCommand="SELECT [EmployeeID], [LastName], [FirstName], [Title], [HomePhone] FROM [Employees]"> </asp:SqlDataSource> </div> </form></body></html>Default.aspx.cs:
using System;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Data;using System.Configuration;using System.Web.Security;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using Telerik.Web.UI;public partial class Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { ConfigureExport(); RadGrid1.MasterTableView.ExportToExcel(); } public void ConfigureExport() { RadGrid1.ExportSettings.ExportOnlyData = CheckBox1.Checked; RadGrid1.ExportSettings.IgnorePaging = CheckBox2.Checked; RadGrid1.ExportSettings.OpenInNewWindow = CheckBox3.Checked; }}See the form in the "radgrid_excel_export.png".
Cheers!
0
Adriano
Top achievements
Rank 1
answered on 21 Jun 2013, 09:23 AM
Had similar problem:
0x800a138f - JavaScript runtime error: Unable to get property 'Cols' of undefined or null reference
The Cause:
Accidently placed 2x RadAjaxManager, one in the masterpage or default and another one inside a contentplaceholder in the same page
Solution:
Removing one of them solved the problem
0x800a138f - JavaScript runtime error: Unable to get property 'Cols' of undefined or null reference
The Cause:
Accidently placed 2x RadAjaxManager, one in the masterpage or default and another one inside a contentplaceholder in the same page
Solution:
Removing one of them solved the problem