回帖后如何维护div内容?

时间:2014-05-21 13:22:55

标签: c# asp.net webforms

我在页面上有一个面板,它的内容在客户端被更改。例如,我有以下网络表单:

<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>

2 个答案:

答案 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。如果您想保留面板的值,请先将其放入隐藏字段,然后将文本重新分配给面板