views:

60

answers:

2

I have a registration form in ASP.NET 2.0. I want to save my registration form fields either by clicking on submit button or they should be saved every five seconds.

For example I have three fields in my registration page:

UID PWD Name

The user has entered UID and PWD and whilst he is entering Name the previous values should be saved without interruption of user inputs

How would I do this in ASP.NET?

+1  A: 

Of course you need to use ajax calls to save it each five seconds.

Danil
i need sample code.can you post some example code how to do it using ajax?
Sandy
+3  A: 

You could do this with a snippet of Javascript & jQuery. Have a function that's fired by a timer that periodically reads the form data you want to save and posts it back to a SaveDraft.aspx page. In this page persists the data somewhere (such as a database).

If the user logs out or their session is lost you can query for this data and pre-populate the form if the data exists.

On your data entry ASPX page:

// Usual ASP.NET page directives go here

<html xmlns="http://www.w3.org/1999/xhtml"&gt;
  <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>

In your SaveDraft.aspx page:

public partial class SaveDraft : System.Web.UI.Page
{
  protected void Page_Load(object sender, EventArgs e)
  {
    string username = Response.Form["username"];
    string password = Response.Form["password"];
    string realName = Response.Form["realName"];

    // Save data somewhere at this point    
  }
}

That should get you started.

Kev
can you post the function and timer call too?
Sandy
I got your point. But i dont know how to do that? so if u post source code that will be easy for me.
Sandy
@Sandy - I've updated my answer with a prototype
Kev
Thank you very much for ur help.....
Sandy
@Sandy - no problem, if this helped you then mark as the correct answer by clicking on the tick box. :)
Kev