Getting these errors when trying to update spreadsheet cells. Uncaught TypeError: Cannot read property 'offsetWidth' of undefined
The issue is happening even on the demo component when editing a cell:
https://demos.telerik.com/aspnet-ajax/spreadsheet/examples/overview/defaultcs.aspx
Workaround from Admin:
Load the following script under the ScriptManager:
<script>
if (kendo && kendo.spreadsheet && kendo.spreadsheet.SheetEditor) {
kendo.spreadsheet.SheetEditor.fn.activate = function (options) {
var viewElement = this.view.element, viewWidth, scrollerElement, scrollbarWidth;
this._active = true;
this._rect = options.rect;
this._range = options.range;
this.cellInput.position(options.rect);
this.cellInput.resize(options.rect);
this.cellInput.tooltip(options.tooltip);
this.cellInput.activeCell = this.barInput.activeCell = this._range.topLeft();
this.cellInput.activeSheet = this.barInput.activeSheet = this._range._sheet;
if (viewElement) {
viewWidth = viewElement.width();
scrollerElement = viewElement.find('.' + kendo.spreadsheet.View.classNames.scroller)[0];
scrollbarWidth = scrollerElement.offsetWidth - scrollerElement.clientWidth;
this.cellInput.element.css('max-width', viewWidth - scrollbarWidth - this.cellInput.element.position().left + 'px');
}
this.trigger('activate');
return this;
}
}
</script>
Repro:
<telerik:RadSpreadsheet runat="server" ID="RadSpreadsheet1" />
<telerik:RadSpreadsheet runat="server" ID="RadSpreadsheet2" />
protected void Page_Load(object sender, EventArgs e)
{
var workbook = new Workbook();
var sheet1 = workbook.AddSheet();
AddDateRow(sheet1);
sheet1.Columns = new List<Column>() { new Column() { Index = 1, Width = 150 } };
RadSpreadsheet1.Sheets.Add(sheet1);
RadSpreadsheet2.Sheets.Add(sheet1);
RadSpreadsheet1.ColumnsCount = 5;
RadSpreadsheet1.RowsCount = 10;
}
private void AddDateRow(Worksheet sheet1)
{
var row = new Row() { Index = 0 };
Cell firstCell = new Cell() { Index = 0, Value = "Select Date:", Bold = true };
row.AddCell(firstCell);
Cell secondCell = new Cell() { Index = 1, Value = "", Bold = true, Background = "#fef0cd", Format = "mmmm d, yyyy" };
secondCell.Validation = new Validation()
{
AllowNulls = true,
DataType = "date",
ShowButton = true,
ComparerType = "between",
From = "DATEVALUE(\"1/1/2000\")",
To = "DATEVALUE(\"12/31/2020\")",
Type = "reject",
TitleTemplate = "Invalid date selected",
MessageTemplate = "Select a date between year 2000 and 2020."
};
row.AddCell(secondCell);
sheet1.AddRow(row);
}
Workaround(Approved by Admin):
<script>
// Place/load this script after the ScriptManager
if (Telerik.Web.UI.RadSpreadsheet) {
Telerik.Web.UI.RadSpreadsheet.prototype.original_initialize = Telerik.Web.UI.RadSpreadsheet.prototype.initialize;
Telerik.Web.UI.RadSpreadsheet.prototype.initialize = function () {
this.original_initialize();
this.add_parentShown(this.get_element());
}
Telerik.Web.UI.RadSpreadsheet.prototype.repaint = function () {
this.get_kendoWidget().refresh()
}
}
</script>
Reproduction:
<telerik:RadWizard runat="server" ID="RadWizard1">
<WizardSteps>
<telerik:RadWizardStep ID="WizardStep1" StepType="Start">
Step 1
</telerik:RadWizardStep>
<telerik:RadWizardStep ID="WizardStep3">
<telerik:RadSpreadsheet runat="server" ID="RadSpreadsheet1"></telerik:RadSpreadsheet>
</telerik:RadWizardStep>
<telerik:RadWizardStep ID="WizardStep4" StepType="Finish">
Finish step
</telerik:RadWizardStep>
<telerik:RadWizardStep ID="WizardStep5" StepType="Complete">
Completed!
</telerik:RadWizardStep>
</WizardSteps>
</telerik:RadWizard>
The issue is replicated when the spreadsheet is higher than the screen height. To reproduce it, scroll the page and click the last visible cell.
Result: The page is scrolled to the beginning of the Spreadsheet element
Expected: The page is not scrolled
<telerik:RadSpreadsheet runat="server" ID="RadSpreadsheet1" Height="2000px" Width="100%">
</telerik:RadSpreadsheet>
Workaround: Placing the following script under the ScriptManager
<script>
kendo.spreadsheet.registerEditor('_validation_list', function () {
var context, list;
function create() {
var $list = $("[id$='SpreadsheetListBoxDropDown']").first();
var element = $list.closest(".rssPopup");
list = $find($list.attr("id"));
if (!this._listdropdown) {
var dropdown = new kendo.spreadsheet.DropDown(element);
this._listdropdown = dropdown;
list.add_selectedIndexChanged(function (sender, args) {
dropdown.close();
var item = list.get_selectedItem();
if (item) {
context.callback(item.get_value());
}
});
}
this._listdropdown.openFor(context.view.element.find('.k-spreadsheet-editor-button'));
}
function open() {
create();
var matrix = context.validation.from.value;
if (matrix) {
var items = list.get_items();
items.clear();
matrix.each(function (el) {
var item = new Telerik.Web.UI.RadListBoxItem();
item.set_text(el);
items.add(item);
});
}
}
return {
edit: function (options) {
context = options;
open();
},
icon: 'p-icon p-i-arrow-60-down'
};
});
</script>
In Internet Explorer version 11.418.18362.0, when hovering over the lower-right dot the cursor doesn't change to the expected cross-hair.
To Reproduce:
1. Open IE11
2. Navigate to the ASP.NET Spreadsheet Demo
3. Highlight a few cells
4. Hover the cursor over the lower-right dot
Expected Behavior:
The cursor changes to a thin cross-hair icon but it doesn't change in IE 11.
Problem with simple excel behavior. In excel when you type a string longer than the cell, text is not clipped and shows over other cells. Then, if you fill adjacent cell, text is then clipped. I've been able to mimic this behaviour using this css: .RadSpreadsheet .rssPane .k-spreadsheet-cell { overflow: visible !important; } But then, If you highlite those cells with background color the text is again clipped. The background color wipe the text. Attached is a small png to show the problem. Please fix this to work as excel. Users are complaining non stop. Thanks.
The lines shifts badly after line 10 You think you are on line 17 but the cursor is on line 16. Very annoying bug for those using this control. Please fix and give us an update. Look the attached file.
Expected: https://www.screencast.com/t/bvkiEnFk7uhc (as in the Kendo Spreadsheet http://demos.telerik.com/kendo-ui/spreadsheet/index) Actual: https://www.screencast.com/t/6Vu2f1bR3Oy0 (the tooltip is not visible) https://demos.telerik.com/aspnet-ajax/spreadsheet/examples/overview/defaultcs.aspx Workaround: Add the styles for the tooltip from the Kendo Spreadsheet html body .RadSpreadsheet .k-tooltip { border-radius: 4px; background-image: none, linear-gradient(rgba(255, 255, 255, 0.6) 0px, rgba(255, 255, 255, 0) 100%); background-color: rgb(234, 232, 232); color: rgb(49, 49, 49); box-shadow: rgba(0, 0, 0, 0.3) 0px 4px 6px; background-position: 50% 50%; border-color: transparent; z-index: 12000; min-width: 20px; text-align: center; border-style: solid; border-width: 0px; padding: 5px 5px 5px 6px; background-repeat: repeat-x; }
The current context menu lets you hide a row or column, but then you cannot show it again, so the user can lose data. At present there is no context menu option to unhide it and there is no element indicating the column/row was there in the first place. This should behave like in Excel. Such a feature must be implemented first in the underlying Kendo Spreadsheet widget, and to this end I encourage you to cast your votes for its implementation here: http://kendoui-feedback.telerik.com/forums/127393-kendo-ui-feedback/suggestions/19240072-context-menu-option-to-unhide-row-column
Cells in Spreadsheet are automatically underlined on second save or when the file is loaded dynamically. Code to reproduce: string filePath = Server.MapPath("Test.xlsx"); Telerik.Web.Spreadsheet.Workbook wkb = Telerik.Web.Spreadsheet.Workbook.Load(filePath); wkb.Save(filePath);
The spreadsheet adjusts the width based on how many toolbar items are available. The width property doesn't help. It would be nice to have the spreadsheet list of tools to collapse if a width is specified that is smaller than the toolbar row at the top. I don't always want the spreadsheet to be the same width as the tools that are available.
It would be helpful if there was a way to print a spreadsheet via the code behind. As it stands someone must open up a screen with the embedded spreadsheet and export it to PDF, then print from the PDF. What we would like is the ability to print the spreadsheet without having to export to PDF first and ideally without even having to show it on screen. The way we are using it you can attach a spreadsheet to any record and there many be one or more attached, plus the user may print more than one parent record at a time. When someone prints the parent records we want to print all of the attached spreadsheets at the same time without the user having to open each one up in their browser first as this can be time consuming when dealing with large amounts of data. Thank you
As seems to be coming also for the Spreadsheet control in Kendo UI, it would be great if the change event would be added to the spreadsheet control The event fires, whenever the cell change its value. Moreover, the onCellClick or onCellFocus would be great. In general, i strongly believe that there is a huge lack of helpful events for this control. Thanks