Telerik RadEditor HTTP POST VALUE未更新(ASP.NET Web窗体)

Tro*_*ven 3 asp.net post webforms telerik radeditor

我目前正在ASP.NET中编写ContentManager.我有一个预览按钮,它使用jQuery将表单数据发布到新窗口,并显示页面的外观,而不将其保存到数据库并影响实时站点.虽然让ASP.NET直接发布到我试图预览的页面有点麻烦,但我终于使用一系列jQuery代码完成了所有工作.它运行得很漂亮,我使用Request.Form将所有帖子值加载到页面中并在页面上显示它们.不幸的是,由于某种原因,我正在使用的Telerik RadEditor向我发布了他们在C#Page_Load事件中分配的值,并没有反映我所做的文本更改.如果有人能帮助我,这将是伟大的.

function showPreview()
{
    url = "<%= (SiteManager.GetSite()).Url  + this.Filename %>?preview=true"; 
    var specs = "width=1010,height=700,location=0,resizeable=1,status=1,scrollbars=1"; 
    window.open(url, 'PagePreview', specs).moveTo(25, 25);
    $("#__VIEWSTATE").remove();
    $("#__EVENTTARGET").remove();
    $("#__EVENTARGUMENT").remove();
    $("#aspnetForm").removeAttr("action");
    $("#aspnetForm").attr("target","PagePreview");
    $("#aspnetForm").attr("action", url);
    $("#aspnetForm").submit(); 
}
Run Code Online (Sandbox Code Playgroud)

以下是我从tererik RADEDITOR收到的所有帖子数据::

[ctl00_MainContentPlaceHolder_SideContentRadEditor_dialogOpener_Window_ClientState] => [ctl00_MainContentPlaceHolder_SideContentRadEditor_dialogOpener_ClientState] => [ctl00$MainContentPlaceHolder$SideContentRadEditor] => [ctl00_MainContentPlaceHolder_SideContentRadEditor_ClientState] => [ctl00_MainContentPlaceHolder_ContentRadEditor_dialogOpener_Window_ClientState] => [ctl00_MainContentPlaceHolder_ContentRadEditor_dialogOpener_ClientState] => [ctl00$MainContentPlaceHolder$ContentRadEditor] => %3cp%3eTestPageContent%3c/p%3e 
Run Code Online (Sandbox Code Playgroud)

这是文本编辑器的html值(如上所示)%3cp%3eTestPageContent%3c/p%3e 这是在Page_Load事件期间加载的RadEditor中的值.

我将值更改为"测试".但它没有通过POST请求发送,它发送了页面加载中加载的内容.

小智 5

编辑器内容区域与用于在POST请求期间提交内容的textarea分开.在提交表单时,编辑器将自动尝试将内容保存在隐藏的textarea中,但在您的情况下,没有事件被触发,因为它以编程方式发生(即您调用.submit()).在执行回发之前,您需要告诉编辑器手动保存其内容.代码非常基本 - 获取对编辑器的引用并调用.saveContent():

//Grab a reference to the editor
var editor = $find("<%=theEditor.ClientID%>");

//Store the content in the hidden textarea so it can be posted to the server
editor.saveContent();
Run Code Online (Sandbox Code Playgroud)