Hello,
I have a web application that uses RadTreeView control for displaying data. When displaying large amount of data, it throws following error:
"Error during serialization or deserialization using the JSON JavaScriptSerializer. The length of the string exceeds the value set on the maxJsonLength property."
I have tried changing "maxJsonLength" property to value 2147483646 in web.config of the application. But still above error appears.
Please help.
Detailed error is as follows:
Timestamp: 7/13/2012 2:14:51 PM$$$Message: <?xml version="1.0" encoding="utf-16"?><error><message>Error during serialization or deserialization using the JSON JavaScriptSerializer. The length of the string exceeds the value set on the maxJsonLength property.</message><stackTrace> at System.Web.Script.Serialization.JavaScriptSerializer.Serialize(Object obj, StringBuilder output, SerializationFormat serializationFormat) at System.Web.Script.Serialization.JavaScriptSerializer.Serialize(Object obj, SerializationFormat serializationFormat) at System.Web.Script.Serialization.JavaScriptSerializer.SerializeValue(Object o, StringBuilder sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat) at System.Web.Script.Serialization.JavaScriptSerializer.SerializeEnumerable(IEnumerable enumerable, StringBuilder sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat) at System.Web.Script.Serialization.JavaScriptSerializer.SerializeValueInternal(Object o, StringBuilder sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat) at System.Web.Script.Serialization.JavaScriptSerializer.SerializeValue(Object o, StringBuilder sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat) at System.Web.Script.Serialization.JavaScriptSerializer.Serialize(Object obj, StringBuilder output, SerializationFormat serializationFormat) at System.Web.Script.Serialization.JavaScriptSerializer.Serialize(Object obj, SerializationFormat serializationFormat) at System.Web.Script.Serialization.JavaScriptSerializer.Serialize(Object obj) at Telerik.Web.UI.RadTreeView.DescribeComponent(ScriptComponentDescriptor descriptor) at Telerik.Web.UI.RadDataBoundControl.Telerik.Web.IControl.DescribeComponent(ScriptComponentDescriptor descriptor) at Telerik.Web.UI.ScriptRegistrar.GetScriptDescriptors(Control control) at Telerik.Web.UI.RadDataBoundControl.GetScriptDescriptors() at Telerik.Web.UI.RadDataBoundControl.System.Web.UI.IScriptControl.GetScriptDescriptors() at System.Web.UI.ScriptControlManager.RegisterScriptDescriptors(IScriptControl scriptControl) at System.Web.UI.ScriptManager.RegisterScriptDescriptors(IScriptControl scriptControl) at Telerik.Web.UI.RadDataBoundControl.RegisterScriptDescriptors() at Telerik.Web.UI.RadDataBoundControl.Render(HtmlTextWriter writer) at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderControl(HtmlTextWriter writer) at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) at System.Web.UI.Control.Render(HtmlTextWriter writer) at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderControl(HtmlTextWriter writer) at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) at System.Web.UI.UpdatePanel.RenderChildren(HtmlTextWriter writer) at System.Web.UI.Control.Render(HtmlTextWriter writer) at System.Web.UI.UpdatePanel.Render(HtmlTextWriter writer) at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderControl(HtmlTextWriter writer) at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) at System.Web.UI.Control.Render(HtmlTextWriter writer) at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderControl(HtmlTextWriter writer) at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) at System.Web.UI.WebControls.WebControl.RenderContents(HtmlTextWriter writer) at System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer) at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderControl(HtmlTextWriter writer) at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) at System.Web.UI.WebControls.WebControl.RenderContents(HtmlTextWriter writer) at Telerik.Web.UI.RadMultiPage.RenderContents(HtmlTextWriter writer) at System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer) at Telerik.Web.UI.RadMultiPage.Render(HtmlTextWriter writer) at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderControl(HtmlTextWriter writer) at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) at System.Web.UI.Control.Render(HtmlTextWriter writer) at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderControl(HtmlTextWriter writer) at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) at System.Web.UI.UpdatePanel.RenderChildren(HtmlTextWriter writer) at System.Web.UI.Control.Render(HtmlTextWriter writer) at System.Web.UI.UpdatePanel.Render(HtmlTextWriter writer) at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderControl(HtmlTextWriter writer) at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) at System.Web.UI.WebControls.WebControl.RenderContents(HtmlTextWriter writer) at System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer) at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderControl(HtmlTextWriter writer) at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) at System.Web.UI.Control.Render(HtmlTextWriter writer) at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderControl(HtmlTextWriter writer) at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) at System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer) at System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer) at System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter output) at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.HtmlControls.HtmlForm.RenderControl(HtmlTextWriter writer) at ASP.master_master.__RenderMasterBody(HtmlTextWriter __w, Control parameterContainer) at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) at System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer) at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderControl(HtmlTextWriter writer) at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) at System.Web.UI.Control.Render(HtmlTextWriter writer) at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderControl(HtmlTextWriter writer) at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) at System.Web.UI.Page.Render(HtmlTextWriter writer) at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderControl(HtmlTextWriter writer) at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)</stackTrace></error>
Thanks,
Neha
</
script
>
<
script
type
=
"text/javascript"
id
=
"telerikClientEvents2"
>
//
<![CDATA[
function RadMenu1_MouseOut(sender, args) {
document.getElementById(sender.get_id()).style.zIndex = -1;
}
//]]>
</
script
>
I have followed the code provided in the self-referencing hierarchy demo (http://demos.telerik.com/aspnet-ajax/grid/examples/hierarchy/selfreferencing/defaultcs.aspx) exactly, but I am having trouble with the columns in nested details table not lining correctly.
My radgrid looks like this
<
style
type
=
"text/css"
>
.RadGrid td
{
padding: 0;
}
</
style
>
<
telerik:RadGrid
ID
=
"rgTasks"
runat
=
"server"
OnNeedDataSource
=
"rgTasks_NeedDataSource"
Skin
=
"Hay"
OnColumnCreated
=
"RadGrid1_ColumnCreated"
OnItemCreated
=
"RadGrid1_ItemCreated"
OnItemDataBound
=
"RadGrid1_ItemDataBound"
>
<
MasterTableView
CommandItemDisplay
=
"None"
DataKeyNames
=
"TASK_UID, TASK_PARENT_UID"
HierarchyDefaultExpanded
=
"true"
HierarchyLoadMode
=
"Client"
>
<
SelfHierarchySettings
ParentKeyName
=
"TASK_PARENT_UID"
KeyName
=
"TASK_UID"
/>
<
NoRecordsTemplate
></
NoRecordsTemplate
>
</
MasterTableView
>
<
ClientSettings
AllowExpandCollapse
=
"true"
/>
</
telerik:RadGrid
>
protected
void
Page_Load(
object
sender, EventArgs e)
{
rgTasks.MasterTableView.FilterExpression =
"TASK_PARENT_UID IS NULL"
;
}
protected
void
RadGrid1_ColumnCreated(
object
sender, GridColumnCreatedEventArgs e)
{
if
(e.Column
is
GridExpandColumn)
{
e.Column.Visible =
false
;
}
else
if
(e.Column
is
GridBoundColumn)
{
e.Column.HeaderStyle.Width = Unit.Pixel(100);
e.Column.ItemStyle.Wrap =
false
;
}
}
public
void
Page_PreRender(
object
sender, EventArgs e)
{
HideExpandColumnRecursive(rgTasks.MasterTableView);
}
public
void
HideExpandColumnRecursive(GridTableView tableView)
{
GridItem[] nestedViewItems = tableView.GetItems(GridItemType.NestedView);
foreach
(GridNestedViewItem nestedViewItem
in
nestedViewItems)
{
foreach
(GridTableView nestedView
in
nestedViewItem.NestedTableViews)
{
nestedView.Style[
"border"
] =
"0"
;
Button MyExpandCollapseButton = (Button)nestedView.ParentItem.FindControl(
"MyExpandCollapseButton"
);
if
(nestedView.Items.Count == 0)
{
if
(MyExpandCollapseButton !=
null
)
{
MyExpandCollapseButton.Style[
"visibility"
] =
"hidden"
;
}
nestedViewItem.Visible =
false
;
}
else
{
if
(MyExpandCollapseButton !=
null
)
{
MyExpandCollapseButton.Style.Remove(
"visibility"
);
}
}
if
(nestedView.HasDetailTables)
{
HideExpandColumnRecursive(nestedView);
}
}
}
}
protected
void
RadGrid1_ItemCreated(
object
sender, GridItemEventArgs e)
{
CreateExpandCollapseButton(e.Item,
"TASK_UID"
);
if
(e.Item
is
GridHeaderItem && e.Item.OwnerTableView != rgTasks.MasterTableView)
{
e.Item.Style[
"display"
] =
"none"
;
}
if
(e.Item
is
GridNestedViewItem)
{
e.Item.Cells[0].Visible =
false
;
}
}
protected
void
RadGrid1_ItemDataBound(
object
sender, GridItemEventArgs e)
{
CreateExpandCollapseButton(e.Item,
"TASK_UID"
);
}
public
void
CreateExpandCollapseButton(GridItem item,
string
columnUniqueName)
{
if
(item
is
GridDataItem)
{
if
(item.FindControl(
"MyExpandCollapseButton"
) ==
null
)
{
Button button =
new
Button();
button.Click +=
new
EventHandler(button_Click);
button.CommandName =
"ExpandCollapse"
;
button.CssClass = (item.Expanded) ?
"rgCollapse"
:
"rgExpand"
;
button.ID =
"MyExpandCollapseButton"
;
if
(item.OwnerTableView.HierarchyLoadMode == GridChildLoadMode.Client)
{
string
script = String.Format(@
"$find("
"{0}"
")._toggleExpand(this, event); return false;"
, item.Parent.Parent.ClientID);
button.OnClientClick = script;
}
int
level = item.ItemIndexHierarchical.Split(
':'
).Length - 1;
button.Style[
"margin-left"
] = level * 15 +
"px"
;
TableCell cell = ((GridDataItem)item)[columnUniqueName];
cell.Controls.Add(button);
cell.Controls.Add(
new
LiteralControl(
" "
));
cell.Controls.Add(
new
LiteralControl(((GridDataItem)item).GetDataKeyValue(columnUniqueName).ToString()));
}
}
}
void
button_Click(
object
sender, EventArgs e)
{
((Button)sender).CssClass = (((Button)sender).CssClass ==
"rgExpand"
) ?
"rgCollapse"
:
"rgExpand"
;
}
Radgrid edit mode rocks with a special formtemplate, it this might be simple but cannot figure out. I need to be able to postback while in edit mode, i have 2 dropdownlists and need the second to be filled by the first while in edit mode. I can fill them to existing values but if a user need to change them they stay with existing values and don't change becuase of no postback. So basically if they pick another make I need the models to refresh themselves based on the make. If this is not possible in edit mode I will take it out to a panel and do it here.
Protected Sub myRadGrid_ItemDataBound(ByVal sender As Object, ByVal e As Telerik.Web.UI.GridItemEventArgs) Handles myRadGrid.ItemDataBound
If (TypeOf e.Item Is GridEditableItem AndAlso e.Item.IsInEditMode) Then
Dim editedItem As GridEditableItem = DirectCast(e.Item, GridEditableItem)
Dim Loc As DropDownList = DirectCast(editedItem.FindControl("ddlLocation"), DropDownList)
Dim make As DropDownList = DirectCast(editedItem.FindControl("ddlMake"), DropDownList)
Dim model As DropDownList = DirectCast(editedItem.FindControl("ddlModel"), DropDownList)
'Get the Location filled
sql = "Select intDurableId, strLocation from Drat_J6DurableInfo Order by strLocation"
Loc.Items.Add(New ListItem("Pick Location", "0"))
buildDD(sql, Loc)
Loc.SelectedValue = DirectCast(DataBinder.Eval(e.Item.DataItem, "intDurableId").ToString(), String)
Loc.DataBind()
'Get the make of the item
sql = "Select intmakeId, strmake from Drat_Make order by strmake"
make.Items.Add(New ListItem("Pick Make", "0"))
buildDD(sql, make)
make.SelectedValue = DirectCast(DataBinder.Eval(e.Item.DataItem, "intMakeId").ToString(), String)
make.DataBind()
'Get the Model of the item
sql = "Select intModelId, strModel from Drat_Model order by strModel"
model.Items.Add(New ListItem("Pick Model", "0"))
buildDD(sql, model)
model.SelectedValue = DirectCast(DataBinder.Eval(e.Item.DataItem, "intModelId").ToString(), String)
model.DataBind()
End If
End Sub