Hello,
I've been using the self referencing capability of the RadGrid for some time now. Today I was loading data in to the DB that the grid is pulling from and the grid starting throwing out of memory exceptions.
I've been using the self referencing capability of the RadGrid for some time now. Today I was loading data in to the DB that the grid is pulling from and the grid starting throwing out of memory exceptions.
This grid is fully functional, and I had been using test data sets of up to several hundred rows. When I loaded the real data set of just over 6500 rows the grid started throwing the error. I was able to get it work up to 3400 rows, after that the error is thrown. Page processing takes a couple of minutes when it's trying to load the data, during which you can see it taking up memory little by little until .NET tells it to take a hike. The system has 8GB of memory installed, and a test server has 4GB. Fails on both.
This is clearly a bug to me. This is basic text, each row contains a couple of GUIDs and a single text sentence, and it can't handle a few thousand rows? DataTables, GridViews, et all, work without issue.
There is no paging enabled on this grid nor can there be, as it is a grid of a hierarchy that needs to keep expanding.
Please let me know if there is something wrong with my setup, or if there is a known fix. My markup is below, as well as the error message.
<telerik:RadGrid runat="server" ID="TaxonomiesRadGrid" AllowMultiRowSelection="true" Visible="false" |
OnNeedDataSource="TaxonomiesRadGrid_NeedDataSource" Skin="WebBlue" AutoGenerateColumns="false" |
Width="100%" GridLines="None" MasterTableView-GridLines="None" ClientSettings-AllowGroupExpandCollapse="true" |
OnItemCreated="TaxonomiesRadGrid_ItemCreated" ShowStatusBar="true" OnInsertCommand="TaxonomiesRadGrid_InsertCommand" |
OnUpdateCommand="TaxonomiesRadGrid_UpdateCommand" OnDeleteCommand="TaxonomiesRadGrid_DeleteCommand"> |
<MasterTableView HierarchyDefaultExpanded="false" HierarchyLoadMode="Client" CommandItemDisplay="Top" |
CommandItemSettings-AddNewRecordText="Add a new Taxonomy Parent" EditMode="InPlace" |
NoMasterRecordsText="No taxonomy items to display. Please add an item using the link above." |
DataKeyNames="taxonomyItemId, taxonomyParentId"> |
<SelfHierarchySettings ParentKeyName="taxonomyParentId" KeyName="taxonomyItemId" |
MaximumDepth="100" /> |
<Columns> |
<telerik:GridBoundColumn DataField="taxonomyText" DataType="System.String" HeaderText="Taxonomy Description" |
SortExpression="taxonomyText" UniqueName="taxonomyText"> |
</telerik:GridBoundColumn> |
<telerik:GridEditCommandColumn ButtonType="PushButton" ItemStyle-Width="120px" ItemStyle-HorizontalAlign="Right"> |
</telerik:GridEditCommandColumn> |
<telerik:GridClientDeleteColumn ButtonType="PushButton" ItemStyle-Width="50px" ItemStyle-BorderWidth="0px" |
ItemStyle-HorizontalAlign="Center" ConfirmText="Are you sure you want to delete this taxonomy item and any items beneath it?"> |
</telerik:GridClientDeleteColumn> |
</Columns> |
</MasterTableView> |
<ClientSettings AllowExpandCollapse="true" AllowGroupExpandCollapse="true"> |
</ClientSettings> |
</telerik:RadGrid> |
Server Error in '/NTTR' Application. |
Exception of type 'System.OutOfMemoryException' was thrown. |
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. |
Exception Details: System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown. |
Source Error: |
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. |
Stack Trace: |
[OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.] |
System.String.GetStringForStringBuilder(String value, Int32 startIndex, Int32 length, Int32 capacity) +29 |
System.Text.StringBuilder.GetNewString(String currentString, Int32 requiredLength) +69 |
System.Text.StringBuilder.Append(String value) +97 |
System.Web.UI.ScriptControlManager.RegisterScriptsForScriptDescriptors(IEnumerable`1 scriptDescriptors, Control control) +240 |
System.Web.UI.ScriptControlManager.RegisterScriptDescriptors(IScriptControl scriptControl) +113 |
System.Web.UI.ScriptManager.RegisterScriptDescriptors(IScriptControl scriptControl) +21 |
Telerik.Web.UI.RadCompositeDataBoundControl.RegisterScriptDescriptors() +37 |
Telerik.Web.UI.RadCompositeDataBoundControl.RenderContents(HtmlTextWriter writer) +38 |
Telerik.Web.UI.RadGrid.RenderContents(HtmlTextWriter writer) +56 |
Telerik.Web.UI.GridBaseDataList.Render(HtmlTextWriter writer) +88 |
Telerik.Web.UI.RadGrid.Render(HtmlTextWriter writer) +125 |
System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27 |
System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99 |
System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25 |
Telerik.Web.UI.ControlRenderer.Render(HtmlTextWriter writer) +84 |
System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27 |
System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99 |
System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25 |
System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +134 |
System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +19 |
System.Web.UI.Control.Render(HtmlTextWriter writer) +10 |
System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27 |
System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99 |
System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25 |
System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +134 |
System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +19 |
System.Web.UI.UpdatePanel.RenderChildren(HtmlTextWriter writer) +234 |
System.Web.UI.Control.Render(HtmlTextWriter writer) +10 |
System.Web.UI.UpdatePanel.Render(HtmlTextWriter writer) +34 |
System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27 |
System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99 |
System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25 |
Telerik.Web.UI.PreControlToAjaxify.Render(HtmlTextWriter writer) +112 |
System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27 |
System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99 |
System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25 |
System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +134 |
System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +19 |
System.Web.UI.Control.Render(HtmlTextWriter writer) +10 |
System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27 |
System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99 |
System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25 |
System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +134 |
System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +19 |
System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer) +163 |
System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer) +32 |
System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter output) +51 |
System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27 |
System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99 |
System.Web.UI.HtmlControls.HtmlForm.RenderControl(HtmlTextWriter writer) +40 |
System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +134 |
System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +19 |
System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer) +32 |
System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27 |
System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99 |
System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25 |
System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +134 |
System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +19 |
System.Web.UI.Control.Render(HtmlTextWriter writer) +10 |
System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27 |
System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99 |
System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25 |
System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +134 |
System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +19 |
System.Web.UI.Page.Render(HtmlTextWriter writer) +29 |
System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27 |
System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99 |
System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25 |
Telerik.Web.UI.RadAjaxControl.RenderPageInAjaxMode(HtmlTextWriter writer, Control page) +594 |
System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +256 |
System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +19 |
System.Web.UI.Page.Render(HtmlTextWriter writer) +29 |
System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27 |
System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99 |
System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25 |
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1266 |
Version Information: Microsoft .NET Framework Version:2.0.50727.4200; ASP.NET Version:2.0.50727.4016 |