我在页面上有一个面板,它的内容在客户端被更改。例如,我有以下网络表单:
<asp:panel id="panContents" runat="server">
<span>Initial content</span>
</asp:panel>
首次加载页面时,以下jQuery代码段会替换div客户端的内容:
$("<%= panContents.ClientId =>")
.html("<span>Some content to be maintained after postback</span>")
页面提交并返回给客户端后,面板内容将恢复为首次加载页面时的内容:
<div>
<span>Initial content</span>
</div>
是否可以在回发后维护面板内容,以便在提交之前显示相同内容?回帖后我最终得到以下内容:
<div>
<span>Some content to be maintained after postback</span>
</div>
答案 0 :(得分:1)
此内容仅存在于客户端,因为Panel
不会向服务器发布任何内容(显然)。您可能希望应用的解决方法,以检查是否需要在页面加载上运行代码段。为此,您可能需要带有标记的隐藏字段。
这是一个肮脏的概念证明:
<asp:HiddenField ID="ReplacePanelFlag" runat="server" Value="0" />
// check flag on page load
$(function() {
if ($("<%= ReplacePanelFlag.ClientID %>").val() === "1") {
//run snippet
}
});
// in snippet make sure to set the flag to "1"
$("<%= panContents.ClientId =>")
.html("<span>Some content to be maintained after postback</span>");
$("<%= ReplacePanelFlag.ClientID %>").val("1");
答案 1 :(得分:1)
面板的内容消失了,因为你只是在操纵DOM。如果您想保留面板的值,请先将其放入隐藏字段,然后将文本重新分配给面板