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

例如,我在注册页面上有三个字段:



用户已输入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/

10-10 22:04