2010-10-08 26 views
7

ASP.NET 2.0'da bir kayıt formum var. Kayıt formu alanlarını gönder düğmesine tıklayarak kaydetmek istiyorum ya da her beş saniyede bir kaydedilmeleri gerekiyor. ÖrneğinASP.NET'te "Otomatik Kaydet" veya "Taslak Olarak Kaydet" özelliği nasıl uygulanır?

benim kayıt sayfası içinde üç alan vardır: kullanıcı UID ve PWD girmiştir

UID PWD Name

ve o Name giriyor ederken önceki değerler kullanıcı girdilerinin kesintisiz kaydedilmelidir

Bunu ASP.NET'te nasıl yaparım?

cevap

9

Bunu Javascript & jQuery parçacığında yapabilirsiniz. Kaydetmek istediğiniz form verilerini periyodik olarak okuyan ve SaveDraft.aspx sayfasına geri gönderen bir zamanlayıcı tarafından tetiklenen bir işleve sahip olun. Bu sayfada veri bir yerde (örneğin veritabanı) kalmaktadır.

Kullanıcı oturumu kapatırsa veya oturumu kaybolursa, bu verileri sorgulayabilir ve veri varsa, önceden doldurabilirsiniz. Veri girişi ASPX sayfasında

:

// 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> 

sizin SaveDraft.aspx sayfasında: sizin başlamış

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  
    } 
} 

.

+0

İşlev ve zamanlayıcı çağrısı da gönderebilir misiniz? – Sandy

+0

Amacınızı aldım. Ama bunu nasıl yapacağımı bilmiyorum? Bu yüzden benim için kolay olacak kaynak kodu gönderirseniz. – Sandy

+0

@Sandy - Cevabımı bir prototiple güncelledim – Kev