Sys.ArgumentException: Cannot deserialize. The data does not correspond to valid JSON.
Parameter name: data
The exception is thrown after all page events are executed properly and the Microsoft Ajax Library tries to deserialize the object. (
function JavaScriptSerializer$deserialize)
This bug has been found in the following browsers : Cassini, IE8, Firefox, Chrome, Safari, Opera.
could any one know the fix for this ? or Could you please direct me to solve this issue ?
Iam using the telerik's version : Assembly Telerik.Web.UI.dll, v4.0.30319
Note: I am using this control in a update panel
I cannot retrieve the textbox.text from from Editformsettings of the Radgrid1. The string returns empty all the time. What is wrong with the code after researching seems that the way i am doing it is correct. Any suggestions will be appreciated.
CODEBEHIND:
Protected Sub RadGrid1_ItemCommand(ByVal source As Object, ByVal e As Telerik.Web.UI.GridCommandEventArgs) Handles RadGrid1.ItemCommand
If e.CommandName = "PerformInsert" Then
If (TypeOf e.Item Is GridEditFormItem AndAlso e.Item.IsInEditMode) Then
Dim editItem As GridEditFormItem = DirectCast(e.Item, GridEditFormItem)
Dim Mytab As TextBox = DirectCast(editItem.FindControl("tbTabName"), TextBox)
Dim LocalTab As New SWBC.Weblet.BO.Mortgage.MtgTabs
With LocalTab
.TabName = Mytab.Text
End With
MyTabsList.Add(LocalTab)
End If
End If
ASPX Page
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" >
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="RadGrid1">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>
<telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" >
</telerik:RadAjaxLoadingPanel>
<telerik:RadGrid ID="RadGrid1" runat="server" AllowFilteringByColumn="false" AutoGenerateColumns="true"
AllowPaging="true" AllowSorting="true" Skin="Vista" Width="50%" GridLines="Both"
PageSize="50" EnableViewState="true" OnInsertCommand="RadGrid1_InsertCommand" >
<ExportSettings ExportOnlyData="true" IgnorePaging="true" OpenInNewWindow="true" >
<Csv RowDelimiter="Comma" />
</ExportSettings>
<ClientSettings AllowDragToGroup="True">
<Selecting AllowRowSelect="True" />
<Scrolling AllowScroll="True" UseStaticHeaders="true" />
</ClientSettings>
<MasterTableView AutoGenerateColumns="false" CommandItemDisplay="top" Height="100%" GridLines="Both"
EditMode="PopUp" DataKeyNames="Count" >
<RowIndicatorColumn>
<HeaderStyle Width="20px"/>
</RowIndicatorColumn>
<CommandItemSettings AddNewRecordText="Add Tab" />
<ExpandCollapseColumn>
<HeaderStyle Width="20px" />
</ExpandCollapseColumn>
<Columns>
<telerik:GridEditCommandColumn HeaderStyle-Width="20px" >
</telerik:GridEditCommandColumn>
<telerik:GridBoundColumn DataField="Count" DataType="System.Int16" HeaderText="Item" ReadOnly="True" SortExpression="Item">
<ItemStyle Width="20px" HorizontalAlign="Center" />
<HeaderStyle Width="20px" HorizontalAlign="Center" />
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="TabName" DataType="system.string" HeaderText="TabName" ReadOnly="True" SortExpression="TabName">
<ItemStyle Width="120px" HorizontalAlign="Center" />
<HeaderStyle Width="120px" HorizontalAlign="Center" />
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="TabText" HeaderText="TabText" SortExpression="TabText" UniqueName="TabText">
</telerik:GridBoundColumn>
<telerik:GridButtonColumn CommandName="Delete" Text="Delete" UniqueName="column" HeaderStyle-Width="50px" ItemStyle-Width="50px">
</telerik:GridButtonColumn>
</Columns>
<EditFormSettings InsertCaption="Add New Tab" EditFormType="Template" >
<PopUpSettings Width="640" />
<FormTemplate >
<table id="Table1" cellspacing="1" cellpadding="10" border="0" width="660">
<tr>
<td ></td>
<td> <asp:HiddenField runat="server" ID="hdCount" Value='<%# Bind( "Count" ) %>' /></td>
</tr>
<tr>
<td >Tab Name:</td>
<td>
<asp:TextBox runat="server" ID="tbTabName" Text='<%# Bind( "TabName" ) %>'>
</asp:TextBox>
</td>
</tr>
<tr>
<td valign="top">Tab Text:</td>
<td>
<telerik:RadEditor runat="server" ID="txtBody" Width="525px" >
<Tools>
<telerik:EditorToolGroup >
<telerik:EditorTool Name=AjaxSpellCheck />
<telerik:EditorTool Name=findandreplace />
<telerik:EditorTool Name=SelectAll />
<telerik:EditorTool Name=copy />
<telerik:EditorTool Name=Cut Visible=true />
<telerik:EditorTool Name=paste/>
<telerik:EditorToolStrip Name="paste options" >
<telerik:EditorTool Name=pasteashtml />
<telerik:EditorTool Name=pastefromword />
<telerik:EditorTool Name=pastefromwordnofontsnosizes />
</telerik:EditorToolStrip>
<telerik:EditorTool Name=undo />
<telerik:EditorTool Name=redo />
</telerik:EditorToolGroup>
<telerik:EditorToolGroup >
<telerik:EditorTool Name=linkmanager />
<telerik:EditorTool Name=unlink />
</telerik:EditorToolGroup>
<telerik:EditorToolGroup >
<telerik:EditorTool Name=insertparagraph />
<telerik:EditorTool Name=inserthorizontalrule />
<telerik:EditorTool Name=insertdate />
<telerik:EditorTool Name=InsertTime />
</telerik:EditorToolGroup>
<telerik:EditorToolGroup >
<telerik:EditorTool Name=formatblock />
<telerik:EditorTool Name=fontname />
<telerik:EditorTool Name=fontsize />
</telerik:EditorToolGroup>
<telerik:EditorToolGroup >
<telerik:EditorTool Name=bold />
<telerik:EditorTool Name=italic />
<telerik:EditorTool Name=underline />
<telerik:EditorTool Name=strikethrough />
</telerik:EditorToolGroup>
<telerik:EditorToolGroup >
<telerik:EditorTool Name=justifyleft />
<telerik:EditorTool Name=justifycenter />
<telerik:EditorTool Name=justifyright />
<telerik:EditorTool Name=justifynone />
</telerik:EditorToolGroup>
<telerik:EditorToolGroup >
<telerik:EditorTool Name=indent />
<telerik:EditorTool Name=outdent />
</telerik:EditorToolGroup>
<telerik:EditorToolGroup >
<telerik:EditorTool Name=insertorderedlist />
<telerik:EditorTool Name=insertunorderedlist />
</telerik:EditorToolGroup>
<telerik:EditorToolGroup >
<telerik:EditorTool Name=toggletableborder />
</telerik:EditorToolGroup>
<telerik:EditorToolGroup >
<telerik:EditorTool Name=forecolor />
<telerik:EditorTool Name=backcolor />
<telerik:EditorTool Name=formatstripper />
</telerik:EditorToolGroup>
<telerik:EditorToolGroup >
<telerik:EditorTool Name=insertsymbol />
<telerik:EditorTool Name=inserttable />
</telerik:EditorToolGroup>
<telerik:EditorToolGroup >
<telerik:EditorTool Name=converttolower />
<telerik:EditorTool Name=converttoupper />
<telerik:EditorTool Name=zoom />
<telerik:EditorTool Name=ModuleManager />
<telerik:EditorTool Name=togglescreenmode />
</telerik:EditorToolGroup>
</Tools>
</telerik:RadEditor>
</td>
</tr>
</table>
<table width="623">
<tr>
<td align="right" colspan="2">
<asp:Button ID="Button1" Text='<%# Iif (TypeOf Container is GridEditFormInsertItem, "Insert", "Update") %>'
runat="server" CommandName='<%# Iif (TypeOf Container is GridEditFormInsertItem, "PerformInsert", "Update") %>'>
</asp:Button>
<asp:Button ID="Button2" Text="Cancel" runat="server" CausesValidation="False" CommandName="Cancel">
</asp:Button>
</td>
</tr>
</table>
</FormTemplate>
</EditFormSettings>
</MasterTableView>
</telerik:RadGrid>
Default.aspx <telerik:RadGrid ID="RadGrid1" runat="server" AllowFilteringByColumn="True" AllowPaging="True" AllowSorting="True" CellSpacing="0" GridLines="None" Skin="WebBlue" AutoGenerateColumns="True" EnableLinqExpressions="false" OnPreRender="RadGrid1_PreRender" OnItemCommand="RadGrid1_ItemCommand" Height="620px" onneeddatasource="RadGrid1_NeedDataSource" PageSize="20" > <Columns> <telerik:GridBoundColumn UniqueName="Date" DataField="Date" DataType="System.DateTime" FilterControlAltText="Filter Date column" HeaderText="Date" SortExpression="Date"> <FilterTemplate> <telerik:RadDatePicker ID="RadDatePicker1" runat="server" ClientEvents-OnDateSelected="FromDateSelected" DbSelectedDate='<%# startDate %>'> </telerik:RadDatePicker><br /><br /> <telerik:RadDatePicker ID="RadDatePicker2" runat="server" ClientEvents-OnDateSelected="ToDateSelected" DbSelectedDate='<%# endDate %>'> </telerik:RadDatePicker> <telerik:RadScriptBlock ID="RadScriptBlock2" runat="server"> <script type="text/javascript"> function FromDateSelected(sender, args) { var tableView = $find("<%# ((GridItem)Container).OwnerTableView.ClientID %>"); var ToPicker = $find('<%# ((GridItem)Container).FindControl("RadDatePicker2").ClientID %>'); var fromDate = FormatSelectedDate(sender); var toDate = FormatSelectedDate(ToPicker); tableView.filter("Date", fromDate + " " + toDate, "Between"); } function ToDateSelected(sender, args) { var tableView = $find("<%# ((GridItem)Container).OwnerTableView.ClientID %>"); var FromPicker = $find('<%# ((GridItem)Container).FindControl("RadDatePicker1").ClientID %>'); var fromDate = FormatSelectedDate(FromPicker); var toDate = FormatSelectedDate(sender); tableView.filter("Date", fromDate + " " + toDate, "Between"); } function FormatSelectedDate(picker) { var date = picker.get_selectedDate(); var dateInput = picker.get_dateInput(); var formattedDate = dateInput.get_dateFormatInfo().FormatDate(date, dateInput.get_displayDateFormat()); return formattedDate; } </script> </telerik:RadScriptBlock> </FilterTemplate> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="WinLoss" FilterControlAltText="Filter WinLoss column" HeaderText="WinLoss" SortExpression="WinLoss" UniqueName="WinLoss"> <FilterTemplate> <telerik:RadComboBox ID="winloss_combo" runat="server" EmptyMessage="All" AppendDataBoundItems="true" AllowCustomText="true"> <Items> <telerik:RadComboBoxItem runat="server" Text="" Visible="false" /> <telerik:RadComboBoxItem runat="server" Text="Won" /> <telerik:RadComboBoxItem runat="server" Text="Loss" /> <telerik:RadComboBoxItem runat="server" Text="Awaiting Award" /> <telerik:RadComboBoxItem runat="server" Text="No Bid" /> <telerik:RadComboBoxItem runat="server" Text="Cancelled"/> </Items> <ItemTemplate> <div onclick="StopPropagation(event)"> <asp:CheckBox ID="chk1" runat="server" onclick="wlClick(this)" /> <asp:Label runat="server" ID="lbl1" AssociatedControlID="chk1"><%# Container.Text%></asp:Label> </div> </ItemTemplate> <FooterTemplate> <hr /> <asp:Button runat="server" ID="wlBtn" Text="Submit" CommandName="WinLossFilter"/> </FooterTemplate> </telerik:RadComboBox> <telerik:RadScriptBlock ID="winloss_scriptblock" runat="server"> <script type="text/javascript"> function wlClick(chk) { var text = ""; var values = ""; var tableView = $find("<%# ((GridItem)Container).OwnerTableView.ClientID %>"); var combo = $find('<%# ((GridItem)Container).FindControl("winloss_combo").ClientID %>'); //get the collection of all items var items = combo.get_items(); //enumerate all items for (var i = 0; i < items.get_count(); i++) { var item = items.getItem(i); var skipEmptyItem = i + 1; //get the checkbox element of the current item var chk1 = $get(combo.get_id() + "_i" + skipEmptyItem + "_chk1"); if (chk1.checked) { text += item.get_text() + ","; values += item.get_value() + ","; } } //remove the last comma from the string text = removeLastComma(text); values = removeLastComma(values); if (text.length > 0) { //set the text of the combobox combo.set_text(text); } else { //all checkboxes are unchecked //so reset the controls combo.set_text(""); } document.getElementById("<%= wltext.ClientID %>").value = text; } function removeLastComma(str) { return str.replace(/,$/, ""); } function StopPropagation(e) { // Cancel bubbling. e.cancelBubble = true; if (e.stopPropagation) { e.stopPropagation(); } } </script> </telerik:RadScriptBlock> </FilterTemplate> </telerik:GridBoundColumn> </Columns> </telerik:RadGrid>protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { RadGrid1.DataBind(); } } protected override void OnInit(EventArgs e) { base.OnInit(e); RadGrid1.NeedDataSource += new GridNeedDataSourceEventHandler(RadGrid1_NeedDataSource); } protected override void OnLoad(EventArgs e) { base.OnLoad(e); } protected void RadGrid1_PreRender(object sender, System.EventArgs e) { foreach (GridFilteringItem item in RadGrid1.MasterTableView.GetItems(GridItemType.FilteringItem)) { //this maintains the appropriate checkboxes are checked and sets the value of the combo box
RadComboBox combo = (RadComboBox)item.FindControl("winloss_combo"); foreach (RadComboBoxItem comboItem in combo.Items) { if (wltext.Value.Contains(comboItem.Text.ToString())) { CheckBox chk = (CheckBox)comboItem.FindControl("chk1"); chk.Checked = true; } else { CheckBox chk = (CheckBox)comboItem.FindControl("chk1"); chk.Checked = false; } } combo.Text = wltext.Value; } protected void RadGrid1_ItemCommand(object source, GridCommandEventArgs e) { //string filterexp = RadGrid1.MasterTableView.FilterExpression; if (e.CommandName == RadGrid.FilterCommandName) { Pair filterPair = (Pair)e.CommandArgument; switch (filterPair.Second.ToString()) { case "Date": this.startDate = ((e.Item as GridFilteringItem)[filterPair.Second.ToString()].FindControl("RadDatePicker1") as RadDatePicker).SelectedDate; this.endDate = ((e.Item as GridFilteringItem)[filterPair.Second.ToString()].FindControl("RadDatePicker2") as RadDatePicker).SelectedDate; break; default: break; } } if (e.CommandName == "WinLossFilter") { string query = string.Empty; string endquery = string.Empty; string checkedText = string.Empty; if (wltext.Value != null) checkedText = wltext.Value; string str = "WinLoss," + checkedText; if (str.Split(',').Length > 2) { query = "("; endquery = ")"; } query = query + "([WinLoss] = "; for (int i = 1; i < str.Split(',').Length; i++) { String value = str.Split(',')[i]; int val = str.Split(',').Length; query = query + "'" + value + "')"; if (i < str.Split(',').Length - 1) { query = query + " OR ([WinLoss] = "; } } query = query + endquery; RadGrid1.MasterTableView.FilterExpression = query ; RadGrid1.Rebind(); } }RadGrid[] GridName = new RadGrid[intTotalProcessTemplates]; for (int i = 0; i < intTotalProcessTemplates; ++i) { // Create mastertable GridName[i] = new RadGrid(); GridName[i].DataSource = GetDataTable("SELECT * FROM ProcessTemplate WHERE ProcessTemplate_id = " + (i + 1)); GridName[i].MasterTableView.DataKeyNames = new string[] { "ProcessTemplate_id" }; GridName[i].Skin = "Black"; GridName[i].AutoGenerateColumns = false; GridName[i].AllowPaging = true; // Columns create GridName[i].MasterTableView.Columns.Add(CreateGridColumn("Process name", "Name", 10.0)); GridName[i].MasterTableView.Columns.Add(CreateGridColumn("Process description", "Description", 80.0)); GridName[i].MasterTableView.Columns.Add(CreateGridColumn("Parent", "Parent", 10.0)); // Create detail table GridTableView tableViewStartProcesses = new GridTableView(GridName[i]); tableViewStartProcesses.DataKeyNames = new string[] { "Process_id" }; tableViewStartProcesses.AutoGenerateColumns = true; tableViewStartProcesses.AllowPaging = true; tableViewStartProcesses.CommandItemDisplay = GridCommandItemDisplay.Top; foreach (GridColumn col in tableViewStartProcesses.RenderColumn) { if (col.UniqueName == "templateid") { col.HeaderText = "Template id"; } } // Fix result from stored proc: GetAllProcessesAndSteps_SP LinqResult(tableViewStartProcesses, i); // Add Details to table GridName[i].MasterTableView.DetailTables.Add(tableViewStartProcesses);; // Add to placeholder this.StartProcessPlaceHolder.Controls.Add(GridName[i]);