javascript - 在回发过程中保留动态插入的内容

标签 javascript jquery asp.net postback

我有一个 div 让我们说:

<div id="foo">
</div>

现在,我在单击某个按钮时在此 div 中插入了一些 html 内容(无回发)。现在,当我对服务器控件提交按钮上的某些操作执行回发时,我希望将 html(我通过 javascript 插入的)保留在 foo div 中。现在我正在考虑采用隐藏的输入服务器控件,当提交表单时,我将在该隐藏控件中插入 foo div 的内容,下次回发后加载页面时,我将用以下内容填充 foo div隐藏字段内的内容。我是否采用正确的方法或者我应该选择他们的任何其他好方法?

最佳答案

我认为更好的方法是使用 'foo' 的 asp 面板而不是 div,然后将其包装在更新面板中,并使用按钮作为触发器。这将允许您通过 ajax 回发在服务器端设置面板的内容。

但是,如果您确实决定使用您提到的方法,您可能可以执行如下操作:

标记:

  <asp:Hidden ID="hdnContent" Value="" runat="server"/>
  <div id="foo"></div>

脚本:

$(document).ready(function() {

    $('#foo').html($('#<%= hdnContent.ClientID %>').val());

    $('#trigger').click(function() {

         var content = loadSomeContent();

         $('#foo').html(content);
         $('#<%= hdnContent.ClientID %>').val(content);

    });

});
<小时/>

这是更新面板的可能解决方案:

标记:

<asp:UpdatePanel runat="server">
    <ContentTemplate>

        <div id="foo">
            <asp:Literal ID="litFoo" runat="server"/>
        </div>

        <asp:Button ID="btnContent" Text="Insert Content" OnClick="btnContent_OnClick" runat="server"/>
    </ContextTemplate>
</asp:UpdatePanel>

服务器端:

protected void btnContent_OnClick(object sender, EventArgs args)
{
    litFoo.Text = loadContent();
}

关于javascript - 在回发过程中保留动态插入的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4890034/

相关文章:

javascript - 如何更改箱线图中每个组的颜色( Highcharts )

javascript - 如何仅使用按钮而不是整行拖放?

javascript - 使用 fabric.js 删除之前添加的 Canvas 文本

javascript - 预加载/加载大图像的最快方法

javascript - Django ajax jQuery 自动完成仅适用于一页

javascript - 跨同一域但使用不同端口的页面的本地存储

javascript - OnClientClick OnClick

asp.net - 将 DB 中的结果拆分为 "chunks",共 10 个

javascript - 如何计算定义为 'height=auto'的div的高度

javascript - 如何在不改变源的情况下返回结果?