2010-06-16 33 views
0

我在MS AJAX ModalPopup Extender中有一個表單,它位於UpdatePanel(用於異步加載)。一切按預期工作。有一件事我正試圖做,但不知道該怎麼做。關於ASP.NET的更新消息ModalPopupExtender

在表單提交上,客戶端驗證之上有服務器端驗證。我的問題是:如果出現驗證錯誤消息,最好的方法是什麼?如果消息可以異步寫入彈出窗口,彈出窗口仍然存在,那將是理想的。

如果這是不可能的,我想使用JavaScript警告框顯示消息。

任何洞察力和建議,非常感謝。

約翰

+0

對不起,我從來沒有想出如何將答案標記爲接受答案。最後我明白了。我回去標記那些回答我的問題的答案。謝謝! – John 2010-06-16 18:04:31

+0

沒問題。對不起,我不知道你的問題的答案。 – 2010-06-16 18:07:06

+0

jacerhea,沒關係。應該給予那些花時間和努力回答任何人的問題的人。 – John 2010-06-16 18:09:29

回答

2

它已經一段時間,因爲我已經使用了ModalExtender和UpdatePanel的,但是這是可能的。本質上(生鏽的頭部掉落),我在模態設置的標籤內可見= false。然後,在點擊Ok按鈕後,我在後面的代碼中調用了一個處理邏輯的函數。如果邏輯失敗,那麼我更新標籤文本並設置visible = true。如果邏輯通過,我調用模態的close()屬性。對於這兩者,您必須調用updatePanel.update()以便刷新內容。讓我看看,如果我能找到一個例子...

不正是我一直在尋找,但它可以幫助您在正確的軌道上:

If (logInstance.isNew) Then 
    result = logInstance.createNewLogEntry() 
    If (result.ToLower = "success") Then 
     Response.Redirect("default.aspx?status=1") 
    Else 
     saveErrorType.InnerHtml = result 
     ModalSaveError.Show() 
    End If 
Else 
    result = logInstance.updatePreviousLogEntry(textReasons.Value) 
    If (result.ToLower = "success") Then 
     Response.Redirect("default.aspx?status=2") 
    Else 
     saveErrorType.InnerHtml = result 
     ModalSaveError.Show() 
    End If 
End If 
1

托米,感謝您的答覆。我沒有回覆你作爲評論,而是作爲回答,希望有人能告訴我這是否是我們能做的最好的。 此外,它也可能對面臨相同情況的人有所幫助。

在昨天發佈後,我花了幾個小時來找到解決方案,這與您在答案中所描述的基本相同。

關鍵問題是我沒有使用擴展器的OK按鈕。相反,我使用了一個常規的鏈接按鈕,當點擊時觸發一個服務器端點擊事件。無論驗證結果如何,此事件都會關閉彈出窗口。所以我的目標是保持彈出窗口打開,或者至少讓它看起來是開放的,然後向它添加任何驗證錯誤消息。

在我清除了我對這個問題的想法之後,我想我應該能夠重新打開彈出窗口並用用戶正在處理的數據填充窗體,並向其添加驗證錯誤消息。

這樣做!

再次感謝。

+0

隨時!我查看了我的.aspx頁面代碼,並做了同樣的事情 - 在這些模式上沒有OKBtnID參數。 – Tommy 2010-06-17 17:12:28