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