When doing batch edits on a grid if you delete a row, the row is no longer visible in the grid but it is not actually deleted until users click the 'Save' button. This has led to some confusion for our users who delete the rows then navigate off the page w/o pressing save. They think they successfully deleted the rows but when they return to the grid the rows are still present. We have added logic when navigating away from the page that checks and prompts users if there are unsaved batch edit changes, but in case of deleted rows, when they look at the grid, there is no indication about the deleted rows so they are unaware that the rows were not actually deleted. We like the idea of not deleting the rows until the user presses the save button, but maybe the delete action should not remove the row from the grid and instead simply strike it out, or put a 'marked for deletion' flag or do something visual to keep the row on the grid but make it obvious that it has been marked for deletion. This way users will not be confused and will know that they must click the Save for the change to take effect.
If the user's browser supports html5 local storage, I'd like for the RadGrid to be able to save/load its settings from there for things like page size, column order, sorting, etc. Other controls may be able to do this as well.
For the time being you can add the following JavaScript workaround at the end of the form: <script> Telerik.Web.UI.RadGrid.prototype.repaint = function () { if (!this.canRepaint()) { if (typeof (this.get_element()) != "undefined") { this.add_parentShown(this.get_element()); } return; } else { this._clearParentShowHandlers(); } if (!this._scrolling && this.GridDataDiv) { this._scrolling = $find(this.get_id())._scrolling; } if (Telerik.Web.UI.GridScrolling && this._scrolling) { if (this._scrolling._shouldInitializeLayoutAndScroll) { this._scrolling._shouldInitializeLayoutAndScroll = false; this._scrolling._initializeDimensions(); this._scrolling._initializeScroll(); } else { this._scrolling.onWindowResize(); } } else { if (this._repaintWidthFlag) this.get_element().style.width = ""; var masterTableViewWidth = 0; if (!!this._masterClientID && this.get_masterTableView() != null) { masterTableViewWidth = this.get_masterTableView().get_element().offsetWidth; } if (this.get_element().offsetWidth < masterTableViewWidth) { this.get_element().style.width = masterTableViewWidth + "px"; this._repaintWidthFlag = true; } } if (this._masterClientID && this.get_masterTableView() && this.get_masterTableView()._virtualization) { this.get_masterTableView()._virtualization.repaint(); } }; </script>
For RadGrid (and other similar controls) it would be nice to be able to simply add AutoHeight="true" to the elements markup to make the grid calculate the browser height and adjust it's own height (including the scrollable DataDiv inside it) automatically rather than having to resort to custom javascript to achieve the same thing. ie: activate AutoHeight on RadGrid and simply set the distance from the bottom of the browser window to allow for footers, etc. and have that distance maintained even when the browser is resized. Height and ScrollHeight can only use explicit values - not percentages - which is kind of useless if you want the grid to occupy 100% of the available browser height across different devices. http://www.telerik.com/help/aspnet-ajax/grid-height-vs-scrollheight.html
1. Add row to grid. 2. Delete the exact same row. 3. Press save changes button. - Client side error, as seen http://prntscr.com/7qf6zr
It should be client's decision to style his grid, we can not change the dimentions, since it will bre breaking change for the rest of the customers
It would be nice if automatic insert/update functions could require unique data. I would love to use these features, but always have to write the insert and update routines manually to check that duplicates are not used.
Add Visualization support for client-side binding on the radgrid.
The event onclick of the checkbox to select all (inside th with class="rgHeader rgCheck") has syntax error with the function $find, which causes javascript error to the whole page in some cases (for me), and in some pages it doesn't and just can be "ignored". This can be seen at the demo: http://demos.telerik.com/aspnet-ajax/grid/examples/functionality/selecting/row-selection/defaultcs.aspx This demo page is not "broken down", but Firebug reports error: TypeError: toolTip is undefined. So, ToolTips might be affected. Function error: onclick="$find("ctl00_ContentPlaceholder1_RadGrid1")._selectAllRows("ctl00_ContentPlaceholder1_RadGrid1_ctl00", "", event);" So, using """ (double quote) here causes error. It should be "'" (single quote) like all other functions in th with class="rgHeader" as below. <th scope="col" class="rgHeader rgCheck"> <input id="ctl00_ContentPlaceholder1_RadGrid1_ctl00_ctl02_ctl00_ClientSelectColumnSelectCheckBox" type="checkbox" name="ctl00$ContentPlaceholder1$RadGrid1$ctl00$ctl02$ctl00$ClientSelectColumnSelectCheckBox" onclick="$find("ctl00_ContentPlaceholder1_RadGrid1")._selectAllRows("ctl00_ContentPlaceholder1_RadGrid1_ctl00", "", event);" /> </th> <th scope="col" class="rgHeader"> <a onclick="Telerik.Web.UI.Grid.Sort($find('ctl00_ContentPlaceholder1_RadGrid1_ctl00'), 'CustomerID'); return false;" title="Click here to sort" href="javascript:__doPostBack('ctl00$ContentPlaceholder1$RadGrid1$ctl00$ctl02$ctl00$ctl00','')">Customer ID</a> </th> <th scope="col" class="rgHeader"> <a onclick="Telerik.Web.UI.Grid.Sort($find('ctl00_ContentPlaceholder1_RadGrid1_ctl00'), 'CompanyName'); return false;" title="Click here to sort" href="javascript:__doPostBack('ctl00$ContentPlaceholder1$RadGrid1$ctl00$ctl02$ctl00$ctl01','')">Company Name</a> </th> <th scope="col" class="rgHeader"> <a onclick="Telerik.Web.UI.Grid.Sort($find('ctl00_ContentPlaceholder1_RadGrid1_ctl00'), 'ContactName'); return false;" title="Click here to sort" href="javascript:__doPostBack('ctl00$ContentPlaceholder1$RadGrid1$ctl00$ctl02$ctl00$ctl02','')">Contact Name</a> </th> <th scope="col" class="rgHeader"> <a onclick="Telerik.Web.UI.Grid.Sort($find('ctl00_ContentPlaceholder1_RadGrid1_ctl00'), 'ContactTitle'); return false;" title="Click here to sort" href="javascript:__doPostBack('ctl00$ContentPlaceholder1$RadGrid1$ctl00$ctl02$ctl00$ctl03','')">Contact Title</a> </th> <th scope="col" class="rgHeader"> <a onclick="Telerik.Web.UI.Grid.Sort($find('ctl00_ContentPlaceholder1_RadGrid1_ctl00'), 'Address'); return false;" title="Click here to sort" href="javascript:__doPostBack('ctl00$ContentPlaceholder1$RadGrid1$ctl00$ctl02$ctl00$ctl04','')">Address</a> </th> <th scope="col" class="rgHeader"> <a onclick="Telerik.Web.UI.Grid.Sort($find('ctl00_ContentPlaceholder1_RadGrid1_ctl00'), 'PostalCode'); return false;" title="Click here to sort" href="javascript:__doPostBack('ctl00$ContentPlaceholder1$RadGrid1$ctl00$ctl02$ctl00$ctl05','')">Postal Code</a> </th>
This bug is present on this Demo that you provide, http://demos.telerik.com/aspnet-ajax/grid/examples/data-editing/batch-editing/defaultcs.aspx Steps to reproduce are: 1. Click on "add new record" command 2. Click on delete button, the one that is a red "X" 3. Click on Save Changes button. 4. It throws an JS error that is visible on any browser dev tools, attached is a screenshot showing that error. Please fix it soon. Thanks.
The fisrt item in a GridDropDownColumn is selected when editing an item in the Grid, if the value of the dropdown is null. The DefaultMessage is appearing on the grid, when NOT in the EditMode and the value of the field is NULL. The behavior was different with Q1 2015.