我在ASP.NET 2.0中有一个注册表。我想通过单击提交按钮来保存我的注册表格字段,或者应该每五秒钟保存一次。
例如,我在注册页面上有三个字段:
用户已输入UID
和PWD
,并且在输入Name
时,应保存以前的值而不会中断用户输入
我将如何在ASP.NET中做到这一点?
最佳答案
您可以使用Javascript和jQuery片段来实现。具有由计时器触发的功能,该功能定期读取您要保存的表单数据并将其发布回SaveDraft.aspx
页面。在此页面中,将数据保留在某处(例如数据库)。
如果用户注销或 session 丢失,则可以查询此数据,并在存在数据的情况下预先填充表格。
在您的数据输入ASPX页面上:
// Usual ASP.NET page directives go here
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<script type="text/javascript" src="Scripts/jquery-1.4.1.min.js" ></script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:textbox id="username" runat="server" /><br />
<asp:textbox id="password" runat="server" /><br />
<asp:textbox id="realName" runat="server" /><br />
<asp:button id="Submit" onclick="Submit_Click"
usesubmitbehavior="true" runat="server" />
</div>
</form>
<script type="text/javascript">
$(document).ready(function () {
// Configure to save every 5 seconds
window.setInterval(saveDraft, 5000);
});
// The magic happens here...
function saveDraft() {
$.ajax({
type: "POST",
url: "SaveDraft.aspx",
data: ({
username: $("#<%=username.ClientID %>").val(),
password: $("#<%=password.ClientID %>").val(),
realName: $("#<%=realName.ClientID %>").val()
}),
success: function (response) {
alert('saved draft');
}
});
}
</script>
</body>
</html>
在您的
SaveDraft.aspx
页面中:public partial class SaveDraft : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string username = Request.Form["username"];
string password = Request.Form["password"];
string realName = Request.Form["realName"];
// Save data somewhere at this point
}
}
那应该让您开始。
关于javascript - 如何在ASP.NET中实现 “Auto Save”或 “Save Draft”功能?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3889004/