jhtmlarea 在更新面板中不起作用
Posted
技术标签:
【中文标题】jhtmlarea 在更新面板中不起作用【英文标题】:jhtmlarea not working inside updatepanel 【发布时间】:2017-01-31 09:10:42 【问题描述】:我的表单上有一个 jhtmlarea 文本区域
textarea id="txtDigital" name="txtDigital" class="form-control" style="background-color:white; resize: vertical !important; "
rows="20" placeholder="Details" runat="server"></textarea>
这是在 javascript 中设置的:
$(document).ready(function ()
$(function ()
$("#<%=this.txtDigital.ClientID%>").htmlarea(
toolbar: [
["bold", "italic", "underline", "strikethrough"],
["increasefontsize", "decreasefontsize", "forecolor"],
["orderedList", "unorderedList", "superscript", "subscript"],
["indent", "outdent", "justifyleft", "justifycenter", "justifyright"]
]
);
);
);
在我添加 ASP.NET UpdatePanel 之前它工作正常 - 文本区域位于更新面板内,当页面加载时,它只是作为纯文本区域加载。我使用 Firebug 单步执行,代码确实运行,但不是在我怀疑 UpdatePanel 刷新之后。删除 updatepanel 允许它按预期加载为 jhtmlarea。
我尝试在显示 textarea 时将相同的代码作为函数调用,并且它的格式正确为 jhtmlarea,但是在我检查页面时无法看到某些内容被禁用。
如果能帮助我使其在 UpdatePanel 中工作,我将不胜感激。
谢谢
【问题讨论】:
【参考方案1】:这是一个不调用 jquery 事件的部分回发的问题,您需要在 PostBack 之后重新绑定 jquery。您需要一个命名函数并将其作为endRequest
回调传递,以便在浏览器放弃控制时调用demo()
function demo()
$("#<%=this.txtDigital.ClientID%>").htmlarea(
toolbar: [
["bold", "italic", "underline", "strikethrough"],
["increasefontsize", "decreasefontsize", "forecolor"],
["orderedList", "unorderedList", "superscript", "subscript"],
["indent", "outdent", "justifyleft", "justifycenter", "justifyright"]
]
);
$(document).ready(demo);
现在在 ScriptManager
之后的 aspx 文件中添加以下脚本
<script type="text/javascript">
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(demo);
</script>
【讨论】:
以上是关于jhtmlarea 在更新面板中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
Web 部件中的更新面板在 Google Chrome 中不起作用