2010-04-09 31 views
1

我有一個asp.net網頁(C#2008),用戶輸入一個EmployeeID,當他們退出文本框(頁面執行驗證代碼塊在代碼隱藏),他們會得到一個消息框,提示他們從下拉列表框中選擇兩個值中的一個。驗證後刷新asp.net網頁

在代碼隱藏消息提示的代碼是:被顯示在提示

Response.Write("<script>window.alert('Please select Alpha or Beta')</script>"); 

之後,並且用戶點擊「OK」,並返回到該網頁,在網頁上的文字出現失真(該在標籤中的文字是一個更大的尺寸,標籤被包裝到另一行等)

我試圖把Response.Redirect("UserProfileMaint.aspx");之後的代碼隱藏messagebox,但現在,messagebox不出現;

所以這是我SQUENCE:

  • 用戶輸入僱員
  • 如果用戶沒有選擇阿爾法或 測試版,然後顯示消息框
  • 如果用戶選擇Alpha或Beta, 然後穿上」 t顯示消息框

我想顯示消息框驗證,並確保頁面上的文本外觀不失真。我怎樣才能做到這一點?

+0

Response.write會將您的消息寫在頁面的最頂端,這就是爲什麼您的頁面會變形。 – 2010-04-09 14:38:38

+0

不,與「

0

當您調用Response.Redirect時,發生在服務器端,而您希望重定向發生在客戶端一側後,進行選擇。要做到這一點,當你用Response.Write編寫你的腳本(順便說一句,有很多更好的方法來做到這一點),你將有邏輯確定用戶選擇什麼,然後基於選擇,不管是重新查詢他們爲數據,或將固有文檔對象的位置屬性設置爲您要重定向到的URL。

1

處理此問題的最佳方法是使用Javascript並進行客戶端驗證。如果你真的想做服務器端驗證,那麼應該使用RegisterStartupScript或者使用頂部的Label來更好地顯示消息,而不是使用Response.Write顯示警報。

HTH