I would assume that Delete and Edit columns should never be exported to excel to begin with, especially if HideStructureColumns="true".
If the HideStructureColumns is hiding something else, it would be nice to have another flag that would control showing/hiding Edit/Delete columns.
Hello,
There is an issue with Classic render mode Grid when grouping is enabled. The width of the grouping is incorrect and some of the icons are wrapped on the next row.
I found issue here in your forum and received an updated fix.
However, the sample fix has the grid name ("RadGrid1") hard-coded in the method "function OnClientHidden(sender, args)". In our code we need to use this for many grids; each with its own name. Please show me how to obtain the grid name generically; preferably from the arguments (sender, args).
Also in the example the checkbox isn't explicitly declared; I assume the code is using some implicit name. However, in our code the name of the checkbox is declared (see below my signature). Please show me how to change the code to use different checkbox names.
<
telerik:RadGrid
ID
=
"RadGrid1"
runat
=
"server"
AutoGenerateColumns
=
"true"
OnNeedDataSource
=
"RadGrid1_NeedDataSource"
>
<
ExportSettings
ExportOnlyData
=
"true"
>
<
Excel
Format
=
"Biff"
/>
</
ExportSettings
>
<
MasterTableView
Caption
=
"My Personalized caption"
CommandItemDisplay
=
"Top"
>
<
CommandItemSettings
ShowExportToExcelButton
=
"true"
/>
</
MasterTableView
>
</
telerik:RadGrid
>
protected
void
RadGrid1_NeedDataSource(
object
sender, GridNeedDataSourceEventArgs e)
{
RadGrid1.DataSource = OrdersTable();
}
private
DataTable OrdersTable()
{
DataTable dt =
new
DataTable();
dt.Columns.Add(
new
DataColumn(
"OrderID"
,
typeof
(
int
)));
dt.Columns.Add(
new
DataColumn(
"OrderDate"
,
typeof
(DateTime)));
dt.Columns.Add(
new
DataColumn(
"Freight"
,
typeof
(
decimal
)));
dt.Columns.Add(
new
DataColumn(
"ShipName"
,
typeof
(
string
)));
dt.Columns.Add(
new
DataColumn(
"ShipCountry"
,
typeof
(
string
)));
dt.PrimaryKey =
new
DataColumn[] { dt.Columns[
"OrderID"
] };
return
dt;
}
System.ArgumentOutOfRangeException
Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index
This error seems to happen if there is a GridTemplateColumn that has the Exportable property set to False.
Hi
Since updating to the latest release of UI for ASP.NET AJAY the RadContextMenu of my RadGrid is misaligned at the right edge of the screen. Even in your sample https://demos.telerik.com/aspnet-ajax/grid/examples/columns-rows/columns/context-menu/defaultcs.aspx when you open the context menu at the right side of the screen the context menu is nor aligned to the left (like it used to be).
Please ses the attached printscreen.
Kind regards
Felix
Hidden columns are shown on resize when the static headers and frozen column are used. Video: https://www.screencast.com/t/4Lwuvbp7 Possible workarounds: - Hide the column with Visible="False", instead of Display="False" - Hide the column on the client-side: function gridCreated(sender, args) { var masterTableView = sender.get_masterTableView(); columnIndex = masterTableView.getColumnByUniqueName("ShipName").get_element().cellIndex; setTimeout(function () { masterTableView.hideColumn(columnIndex); }, 2); } Steps to reproduse: <telerik:RadGrid RenderMode="Lightweight" HeaderStyle-Width="200px" AutoGenerateColumns="false" ID="RadGrid1" OnNeedDataSource="RadGrid1_NeedDataSource" Width="100%" runat="server"> <ClientSettings> <Scrolling AllowScroll="True" UseStaticHeaders="true" FrozenColumnsCount="2"></Scrolling> </ClientSettings> <MasterTableView AutoGenerateColumns="false"> <Columns> <telerik:GridBoundColumn DataField="SongID" HeaderText="SongID" FilterControlWidth="50px" HeaderStyle-Width="50px"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="SongTitle" HeaderText="Song Title" FilterControlWidth="200px"></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="CollectionName" HeaderText="Collection Name" FilterControlWidth="200px"></telerik:GridBoundColumn> <telerik:GridBoundColumn FilterControlWidth="50px" DataField="VersionID" HeaderText="VersionID" Display="false"></telerik:GridBoundColumn> </Columns> </MasterTableView> </telerik:RadGrid> Code Behind: protected void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e) { (sender as RadGrid).DataSource = GetData(); } private DataTable GetData() { DataTable dt = new DataTable(); dt.Columns.Add("SongID"); dt.Columns.Add("SongTitle"); dt.Columns.Add("CollectionName"); dt.Columns.Add("VersionID"); for (int i = 0; i < 20; i++) { dt.Rows.Add(i, i + 1, i + 2, i + 3); } return dt; }
As a temporary workaround you can use Template column with a DataField set.
Such an exposed method, which returns the value from the ExportOutput, would be useful to further enhance the exporting capabilities of the RadGrid control. A very practical example would be to export numerous RadGrid controls into one Excel file.
Due to browser restrictions, the print behavior is changed and works identically to the one of IE - a new tab/dialog with the grid is opened whose print command is launched. You can observe the behavior in IE at https://demos.telerik.com/aspnet-ajax/grid/examples/functionality/printing/defaultcs.aspx.
Workaround: https://www.telerik.com/support/kb/aspnet-ajax/grid/details/clientdatasource-binding-and-batch-editing-page-is-reset-to-1-after-deleting-a-record A fix in the codebase of the grid will take time, effort and will have to wait in the queue, which is why this is the official solution.
Repro steps: - go to the RadClientDataSource binding demo: https://demos.telerik.com/aspnet-ajax/grid/examples/data-binding/client-side/client-data-source-binding/defaultcs.aspx - filter a column so there is no data in the grid - remove the filter Actual: the pager is gone Expected: the pager is there SOLUTION: see the following KB article: https://www.telerik.com/support/kb/aspnet-ajax/grid/details/clientdatasource-binding-after-filtering-so-no-records-are-present-and-removing-the-filter-there-is-no-pager You can show the pager when the filter command is executed: function OnCommand(sender, args) { if (args.get_commandName() == "Filter") { $telerik.$(sender.get_element()).find(".rgPager").show(); } } A fix in the codebase of the grid will take time, effort and will have to wait in the queue, which is why this is the official solution.
RadGrid GridDateTimeColumnEditor is unable to process data of type TimeSpan if PickerType is set to TimePicker. As a workaround, a GridTemplateColumn can be used with a TimePicker inside EditTemplate <telerik:GridTemplateColumn> <ItemTemplate> <%# Eval("Field") %> </ItemTemplate> <EditItemTemplate> <telerik:RadTimePicker ID="RadTimePicker1" runat="server" SelectedTime='<%# Eval("Field") %>'></telerik:RadTimePicker> </EditItemTemplate> </telerik:GridTemplateColumn>
When the Grid has <HeaderContextMenu> in the Markup and there is no explicitly set RenderMode of the Grid, the Grid is rendered in Classic. It also happens if there is a reference to the ContextMenu in the code behind. Reproduction steps: <script> function f() { //code alert($find("RadGrid1")._renderMode); Sys.Application.remove_load(f); } Sys.Application.add_load(f); </script> <telerik:RadGrid ID="RadGrid1" runat="server" > <HeaderContextMenu></HeaderContextMenu> </telerik:RadGrid> Solutions: 1. Remove the HeaderContextMenu tag 2. Set the RenderMode of the Grid explicitly
If the Chrome browser zoom is different from 100%, it is not possible to reorder the RadGrid columns. The problem can be reproduced at https://demos.telerik.com/aspnet-ajax/grid/examples/columns-rows/columns/column-row-resize-reorder/defaultcs.aspx .
Alternating Row style of RadGrid is not applied when using Bootstrap skin. Steps to reproduce: For all other Skins these approaches work: div.RadGrid tr.rgAltRow { background-color: aqua; } Or: <AlternatingItemStyle BackColor="Aqua" /> The reason probably is because there is >td directive built-in, which needs to be overridden manually in order for the styling to take effect (this works): div.RadGrid tr.rgAltRow > td { background-color: aqua; } A possible workaround for this issue is available in the following forum post: https://www.telerik.com/forums/alternatingitemstyle-5e16887f3085#odVQBomUikiIJfrxeBQrww
For keyboard users who don't have a specific Context Menu key (see https://en.wikipedia.org/wiki/Menu_key), they typically need to use the Windows standard SHIFT+F10 hotkey to trigger a contextmenu event. For example: 1. In IE, load http://demos.telerik.com/aspnet-ajax/grid/examples/columns-rows/columns/context-menu/defaultcs.aspx 2. Tab to a column header link 3. Press SHIFT+F10 (standard Windows/IE hotkey to open context menu) 4. Notice the context menu displays, however, the focus is really on the IE menubar. IE supports F10 to open the menubar, but is also seeing SHIFT+F10 too. Or 1. In FireFox, load http://demos.telerik.com/aspnet-ajax/grid/examples/columns-rows/columns/context-menu/defaultcs.aspx 2. Tab to a column header link 3. Press SHIFT+F10 (standard Windows/IE hotkey to open context menu) then press down arrow 4. Notice the context menu displays, however, the focus is really on FireFox's application system menu in the upper left. Chrome does not have this issue - it opens the grid context menu only. We need IE and FireFox to also only open the grid's context menu, and not trigger default browser behavior. According to https://yuilibrary.com/yui/docs/event/contextmenu.html, it is possible to correct this behavior by calling event.preventDefault() when SHIFT+F10 is pressed, but then trigger a synthetic contextmenu event anyway. As a workaround, we know users can press Escape to close the browser's default menu and bring focus back into the HTML document (and thus the grid's context menu), but this throws off the user experience and becomes a training issue.