2009-10-30 71 views
0

我在我的網站上有一個用戶註冊。ASP.Net:Ajax檢查用戶註冊?

我想看看它很酷,所以我的計劃是,一個文本框在離開之後,綠色或紅色標誌右邊的文本框後面的告訴用戶,如果如用戶名未使用,電子郵件地址未使用,密碼輸入正確,等等。

是的,我知道了驗證控件,但只有一組函數,不是嗎?例如。檢查如果電子郵件ADRESS是未使用的,我必須通過數據庫查詢等等...

什麼想法?

回答

1

我想包在一個更新面板整個事情,這是我經常做的......

<asp:scriptmanager runat="server" id="sm1" /> 
<asp:updatepanel runat="server" id="up1" updatemode="Conditional"> 
<contenttemplate> 
    <asp:textbox runat="server" id="tbUsername" autopostback="true" ontextchanged="tbUsername_TextChanged" /> 
    <asp:customvalidator runat="server" text="Email already used" id="cusValEmail" /> 
    <asp:textbox runat="server" id="tbPassword" /> 
</contenttemplate> 
</asp:updatepanel> 

,並在後面

protected void tbUsername_TextChanged(object sender, EventArgs e) 
{ 
    //call DB etc and mark validator as needed 
    cusValEmail.IsValid = false; 
} 

代碼的關鍵是設置文本框autopostback設置爲true並使用ontextchanged事件。

+0

你能解釋一下它在這一個新手有點長? - 爲什麼scriptmanager和updatepanel? (直到現在我只有幾個文本框和一個按鈕) - 但是不是經常改變文本的方法嗎?我的意思是每次他將一封信發送給DB的查詢是...經常是 - 是否顯示錯誤及時或用戶點擊發送按鈕? – Kovu 2009-10-30 09:26:15

+0

這是我的願望,神采奕奕! 謝謝 – Kovu 2009-10-30 10:12:52

+0

太棒了!很高興它的工作...祝你好運 – Rippo 2009-10-30 10:17:05

0

這樣做將是創建一個控制器動作(如果你使用MVC)或頁(如果你使用的是普通的asp/asp.net),您發佈的用戶名,電子郵件地址的一種簡單方法,等等,它返回一個簡單的純文本顏色值 - 紅色或綠色,取決於是否所有的參數已發佈是好的。然後,您可以將其應用於框的顏色樣式。如果你沒有/想這是一個HTTPS的呼叫,然後我可能不會包括在該密碼,你的AJAX返回代碼也許可以說

if (<password are equal>) 
{ 
    set style-colour to the return value 
} 
else 
{ 
    set to red 
} 

或可能,甚至更好,像

if (<passwords are equal>) 
{ 
    run ajax call 
} 
else 
{ 
set style-colour to red 
} 

和阿賈克斯回報顏色設置爲返回值,這樣還可以節省往返於服務器,如果密碼是不相等

你想/任何理由需要這樣做通過ajax而不是常規的回發(你可以使用更新面板做部分回發)?

+0

我對這個AJAX方面感興趣?你將如何實現它? – Rippo 2009-10-30 09:20:53