我在将页面内容保存到数据库时出现问题。在页面上,我有一堆动态添加的控件和页面顶部的保存按钮。我正在使用客户端javascript来操纵控件。一个用户完成,我希望他单击保存按钮并将所有更改保存到我的数据库(通过服务器端单击事件)。显然,问题是当用户点击"保存"该页面发回,我失去了所有的javascript更改。为简单起见,我将布置保存按钮和一个控件。
HTML:
<form id="form1" runat="server">
<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"></asp:ToolkitScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Button ID="saveGames" runat="server" CssClass="saveGamesLbtn" OnClick="saveGames_Click" Text="Save"/>
</ContentTemplate>
</asp:UpdatePanel>
<div id="controls" runat="server">
</div>
</form>
&#13;
页面加载:
if (!IsPostBack)
{
var games = {grab games from DB via LINQ};
foreach (var game in games)
{
UpdatePanel uPanel = new UpdatePanel();
uPanel.ID = "gamePanel_" + game.GameID.ToString();
Label xpRewardLbl = new Label();
xpRewardLbl.ID = "xpRewardLbl_" + game.GameID.ToString();
xpRewardLbl.Text = "0xp";
uPanel.ContentTemplateContainer.Controls.Add(xpRewardLbl);
controls.controls.add(uPanel);
}
}
在&#34; save&#34;点击,我想解析所有标签以获取他们已更改的状态,但控件被删除,因为它们没有在回发中重新加载 - 如果我在回发中重新加载它们,它们的状态就会丢失。如果我可以解析所有控件并在回发之前保存数据,那也没关系。你是如何实现这一目标的?我认为与更新面板有关的事情会对我有所帮助,但我不确定如何做到这一点。谢谢!