我有一个div让我们说:
<div id="foo">
</div>
现在我在这个div中插入了一些html内容,点击了一些按钮(没有回发)。现在,当我对服务器控件提交按钮上的某些操作执行回发时,我希望html(我通过javascript插入)保存在 foo div中。现在我正在考虑采用一个隐藏的输入服务器控件,当表单将被提交时,我将在该隐藏控件中插入foo div的内容,下一次当页面加载回发后我将填充foo div隐藏字段内的内容。我是采用正确的方法,还是我应该选择其他任何好的方法?
答案 0 :(得分:0)
我认为更好的方法是使用asp面板代替'foo'而不是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>
了Serverside:
protected void btnContent_OnClick(object sender, EventArgs args)
{
litFoo.Text = loadContent();
}