使用C#异步Postback保存Javascript值
Save Javascript Value Using C# Async Postback
我有一个名为txt_edit_content
的Asp TextBox,它的值正在使用JavaScript Wysiwyg进行复制和操作。格式化后的文本存储在一个JavaScript变量中,我可以这样访问:
var data = CKEDITOR.instances.<%=txt_edit_content.ClientID%>.getData();
我试图做的是将该值发送回服务器。因此,我在Sys.WebForms.PageRequestManager
中注册了以下JavaScript函数
function BeginRequestHandler(sender, args) {
try{
var data = CKEDITOR.instances.<%=txt_edit_content.ClientID%>.getData();
console.log("Textbox Before: " + $('#<%=txt_edit_content.ClientID%>').val());
console.log(" Javascript: " + data);
$('#<%=txt_edit_content.ClientID%>').val(data);
console.log(" Textbox After: " + $('#<%=txt_edit_content.ClientID%>').val());
} catch (err) {
console.log("Error:" + err.message);
}
}
并像这样注册:
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_beginRequest(BeginRequestHandler);
POST之前的JavaScript控制台输出如下所示:
前文本框:1234Javascript:<p>1234567<p>文本框位于:<p>1234567<p>
我遇到的问题是,即使值在页面上被更改,它也没有被发送到服务器。但是,正在发送"Textbox Before"值。如何从JavaScript中获取价值并将其输入到代码中?
编辑:我可以使用"保存"按钮上的PostBackTrigger
而不是AsyncPostBackTrigger
来运行此代码。但是,我需要(希望)使用"保存"按钮上的AsyncPostBackTrigger
。
使用更新面板并在其中包装一个隐藏字段。然后在处理程序中设置隐藏字段的值。
function BeginRequestHandler(sender, args) {
try{
var data = CKEDITOR.instances.<%=txt_edit_content.ClientID%>.getData();
console.log("Textbox Before: " + $('#<%=txt_edit_content.ClientID%>').val());
console.log(" Javascript: " + data);
$('#<%=txt_edit_content.ClientID%>').val(data);
console.log(" Textbox After: " + $('#<%=txt_edit_content.ClientID%>').val());
$('#<%=hidValue.ClientID%>').val(data);
} catch (err) {
console.log("Error:" + err.message);
}
}
现在,在您的代码后面,您可以获得hidValue的值。
我能够在不使用其他字段或不必向PageRequestManager
添加处理程序的情况下使其工作
通过创建以下JavaScript函数
function SaveWysiwig() {
try{
var data = CKEDITOR.instances.<%=txt_edit_content.ClientID%>.getData();
$('#<%=txt_edit_content.ClientID%>').val(data);
} catch (err) {
console.log("Error:" + err.message);
}
}
然后通过我的保存按钮这样调用它:
<asp:LinkButton ID="savePage" runat="server" Text="Save" OnClientClick="SaveWysiwig();" OnClick="SavePage" />
我能够获得存储在我的文本框中的JavaScript值,然后在后面提取我的代码。
相关文章:
- 是否可以在浏览器中使用纯JavaScript保存音频流
- JavaScript-保存、存储和更新数组
- 使用 Javascript 保存 Popup 数据
- 以HTML和javascript保存数据
- 通过本地应用程序的Javascript保存文件
- 如何使用javascript保存网页
- JavaScript保存来自ajax请求的数据
- Javascript:保存和恢复浏览器窗口大小
- Javascript:保存和恢复样式状态在IE中不起作用
- 在英特尔XDK上使用javascript保存捕获的图像
- Tinymce-创建一个自定义的javascript保存按钮
- 通过javascript保存带有当前日期和时间的excel文件
- 使用javascript保存XHR文件
- 如何使用 javascript 保存当前网址
- 如何使用 JavaScript 保存菜单状态
- 通过 Javascript 保存/取消输入
- Javascript 保存相同的 ID,而不会在 LocalStorage 中覆盖另一个 ID
- 从外部域 javascript 保存的本地存储不会保存在外部域下
- 无法使用 javascript 保存数据
- 如何使用 Ajax 和 JavaScript 保存 XML 文件