javascript - 如何在 ASP.NET 中实现 "Auto Save"或 "Save Draft"功能?

标签 javascript jquery asp.net-2.0

我在 ASP.NET 2.0 中有一个注册表单。我想通过单击提交按钮或每五秒保存一次来保存我的注册表字段。

例如我在我的注册页面中有三个字段:

UID PWD Name

用户输入了 UIDPWD 并且当他输入 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/

相关文章:

javascript - 无法加载资源 - Bootstrap 错误 403

javascript - 事件处理程序应该是匿名函数并且内部应该有命名函数吗?

javascript - Google 表格脚本编辑器 HTML 用户界面无法读取返回类型

javascript - jQuery 中的 AJAX 调用,什么定义了 "json"作为参数?

c# - ASP.Net 按钮不引发回传

asp.net 2.0 全局主题无法在新的 Windows Server 2008 上运行

javascript - 将 javascript 不显眼地应用到文本框

javascript - jQuery .data(),需要接受数组元素作为键或找到替代方案(JSON?)

jquery - 使用 jquery 将日期波斯语 Datepicker 转换为公历

asp.net - 将 jQuery 集成到现有的 ASP.NET Web 应用程序中?