Quantcast
Channel: ASP.NET AJAX + Ajax Control Toolkit (ACT)
Viewing all articles
Browse latest Browse all 5678

Sys.ArgumentException: Cannot deserialize. The data does not correspond to valid JSON.

$
0
0

I have a problem that relates to the ajax upload.  I am using styles on a div to show/hide the panel these objects are inside of.  When I hit my upload tool, I pick the file I want and click upload.  I get this error:

Sys.ArgumentException: Cannot deserialize. The data does not correspond to valid JSON.

I heard something about AJAX not playing nice if the control is initially hidden.  I was under the impression that using a DIV control would eliminate this problem but it has not.  Any ideas?

EditContent.aspx<%@ Page Title="" Language="C#" MasterPageFile="~/Admin/AdminPanel.Master" AutoEventWireup="true" 
CodeBehind="EditContent.aspx.cs" Inherits="BCCS.Admin.EditContent" %><%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit.HTMLEditor" TagPrefix="cc1" %><asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"></asp:Content><asp:Content ID="Content2" ContentPlaceHolderID="content" runat="server"><div runat="server" id="SelectPane"><asp:Panel ID="pnlSelection" runat="server"><cc1:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"></cc1:ToolkitScriptManager><asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
            DataKeyNames="IdNum" Width="500px" 
            onselectedindexchanged="GridView1_SelectedIndexChanged"><AlternatingRowStyle BackColor="#CCCCCC" /><Columns>            <asp:TemplateField ShowHeader="False"><HeaderStyle Width="100px" /><ItemTemplate ><asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" 
                            CommandName="Select" Text="Select"></asp:LinkButton></ItemTemplate></asp:TemplateField><asp:BoundField DataField="IdNum" HeaderText="Record ID" InsertVisible="False" 
                    ReadOnly="True" SortExpression="IdNum" Visible="False" /><asp:BoundField DataField="CatName" HeaderText="Menu Item" 
                    SortExpression="CatName" /><asp:TemplateField HeaderText="Content" SortExpression="PageContent" 
                    Visible="False"><ItemTemplate><asp:Label ID="Label1" runat="server" Text='<%# Bind("CatName") %>'></asp:Label></ItemTemplate><EditItemTemplate><asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("CatName") %>'></asp:TextBox></EditItemTemplate></asp:TemplateField></Columns><HeaderStyle BackColor="#33CCFF" /><RowStyle BackColor="White" /></asp:GridView></asp:Panel></div><div runat="server" id="editpane"><asp:Panel ID="pnlEditPage" runat="server"><asp:DetailsView ID="DetailsView1" runat="server" Height="37px" Width="582px" 
            AutoGenerateRows="False" DataKeyNames="Id" 
            DefaultMode="Edit" OnItemUpdating = "DetailsView_ItemUpdated" ><Fields><asp:BoundField DataField="Id" HeaderText="Id" InsertVisible="False" 
                    SortExpression="Id" ReadOnly="True" /><asp:TemplateField HeaderText="Content" SortExpression="PageContent"><EditItemTemplate>      <asp:TextBox ID="Editor1" runat="server" Text='<%# Bind("PageContent") %>' 
                            Height="200px" TextMode="MultiLine" Width="565px" /><cc1:HtmlEditorExtender ID="HtmlEditorExtender1" runat="server" 
                        TargetControlID="Editor1" OnImageUploadComplete="saveFile" EnableSanitization="false" DisplaySourceTab="true"><Toolbar><cc1:Undo /><cc1:Redo /><cc1:Bold /><cc1:Italic /><cc1:Underline /><cc1:StrikeThrough /><cc1:Subscript /><cc1:Superscript /><cc1:JustifyLeft /><cc1:JustifyCenter /><cc1:JustifyRight /><cc1:JustifyFull /><cc1:InsertOrderedList /><cc1:InsertUnorderedList /><cc1:CreateLink /><cc1:UnLink /><cc1:RemoveFormat /><cc1:SelectAll /><cc1:UnSelect /><cc1:Delete /><cc1:Cut /><cc1:Copy /><cc1:Paste /><cc1:BackgroundColorSelector /><cc1:ForeColorSelector /><cc1:FontNameSelector /><cc1:FontSizeSelector /><cc1:Indent /><cc1:Outdent /><cc1:InsertHorizontalRule /><cc1:HorizontalSeparator /><cc1:InsertImage /></Toolbar></cc1:HtmlEditorExtender></EditItemTemplate><InsertItemTemplate><asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("PageContent") %>'></asp:TextBox></InsertItemTemplate><ItemTemplate><asp:Label ID="Label1" runat="server" Text='<%# Bind("PageContent") %>'></asp:Label></ItemTemplate></asp:TemplateField><asp:TemplateField ShowHeader="False"><EditItemTemplate><br /><br /><br /><asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="True" 
                            CommandName="Update" Text="Update"></asp:LinkButton>&nbsp;<asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" 
                            CommandName="Cancel" Text="Cancel" onclick="LinkButton2_Click"></asp:LinkButton></EditItemTemplate><ItemTemplate><asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" 
                            CommandName="Edit" Text="Edit"></asp:LinkButton></ItemTemplate></asp:TemplateField></Fields></asp:DetailsView></asp:Panel></div></asp:Content>
EditContent.aspx.cs code:

using System;
using System.Data;
using System.Data.SqlClient;
using System.Web.Configuration;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace BCCS.Admin
{    
    public partial class EditContent : System.Web.UI.Page
    {
        protected global::System.Web.UI.WebControls.Panel pnlSelection;
        protected global::AjaxControlToolkit.ToolkitScriptManager ToolkitScriptManager1;
        protected global::System.Web.UI.WebControls.GridView GridView1;
        protected global::System.Web.UI.WebControls.Panel pnlEditPage;
        protected global::System.Web.UI.WebControls.DetailsView DetailsView1;
        protected global::AjaxControlToolkit.HtmlEditorExtender heeEditor1;
        protected global::System.Web.UI.HtmlControls.HtmlGenericControl SelectPane;
        protected global::System.Web.UI.HtmlControls.HtmlGenericControl editpane;
        protected global::System.Web.UI.HtmlControls.HtmlTextArea Editor1;

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                GridViewDataBind();
            }
        }
        private void GridViewDataBind()
        {
            GridView1.DataSource = "";
            SqlConnection conn = new SqlConnection(WebConfigurationManager.ConnectionStrings["MyConn"].ConnectionString);
            SqlCommand cmd = new SqlCommand("SELECT Menu.CategoryName AS CatName, Menu.Description AS Descr, Pages.PageContent AS Content, Menu.Published, Menu.ID AS IdNum FROM Menu INNER JOIN Pages ON Menu.ID = Pages.MenuID");
            conn.Open();
            cmd.Connection = conn;
            SqlDataReader dr = cmd.ExecuteReader();
            DataTable dt = new DataTable();
            dt.Load(dr);
            GridView1.DataSource = dt;
            GridView1.DataBind();
        }
        private void DetailsViewDataBind(string SelectedID)
        {
            DetailsView1.DataSource = "";
            SqlConnection conn = new SqlConnection(WebConfigurationManager.ConnectionStrings["MyConn"].ConnectionString);
            SqlCommand cmd = new SqlCommand("SELECT * FROM [Pages] WHERE ([MenuId] = @Id)");
            conn.Open();
            cmd.Parameters.AddWithValue("Id", Convert.ToInt32(SelectedID.ToString()));
            cmd.Connection = conn;
            SqlDataReader dr = cmd.ExecuteReader();
            DataTable dt = new DataTable();
            dt.Load(dr);
            DetailsView1.DataSource = dt;
            DetailsView1.DataBind();
        }
        private void UpdateGridView()
        {            
//            AjaxControlToolkit.HTMLEditor.Editor Editor = ((AjaxControlToolkit.HTMLEditor.Editor)DetailsView1.FindControl("Editor1"));
            TextBox Editor1 = ((TextBox)DetailsView1.FindControl("Editor1"));
            SqlConnection conn = new SqlConnection(WebConfigurationManager.ConnectionStrings["MyConn"].ConnectionString);
            SqlCommand cmd = new SqlCommand("UPDATE [Pages] SET [PageContent] = @PageContent WHERE (Id = @Id)");
            conn.Open();
            cmd.Parameters.AddWithValue("Id", Convert.ToInt32(DetailsView1.SelectedValue.ToString()));
            cmd.Parameters.AddWithValue("PageContent", Editor1.Text.ToString());
            cmd.Connection = conn;
            cmd.ExecuteNonQuery();
            conn.Close();
        }

        protected void DetailsView_ItemUpdated(object sender, DetailsViewUpdateEventArgs e)
        {
            UpdateGridView();
            GridViewDataBind();
            SelectPane.Attributes.Add("style", "display:normal;");
            editpane.Attributes.Add("style", "display:none;");
        }

        protected void LinkButton2_Click(object sender, EventArgs e)
        {
            SelectPane.Attributes.Add("style", "display:normal;");
            editpane.Attributes.Add("style", "display:none;");
        }

        protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
        {
            DetailsViewDataBind(GridView1.SelectedValue.ToString());
            SelectPane.Attributes.Add("style", "display:none;");
            editpane.Attributes.Add("style", "display:normal;");
        }
        protected void saveFile(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e)
        {
            // Save your File               
            heeEditor1.AjaxFileUpload.SaveAs(Server.MapPath("~/Assets/Images/" + e.FileName));

            // Tells the HtmlEditorExtender where the file is otherwise it will render as: <img src="" />
            e.PostedUrl = Server.MapPath("~/Assets/Images/" + e.FileName);
        }
    }
}

Ajax Version: v4.0.30319


Viewing all articles
Browse latest Browse all 5678

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>