2011-04-21 36 views
-1

我們的應用程序有一組設置,其中包括複選框,文本框和asp驗證程序。要更改其中一項設置,您必須先使用複選框啓用文本框。如果驗證失敗,則會通過驗證器顯示一條消息,告訴用戶哪些值是有效的。一旦發生這種情況,我試圖取消選中複選框(此操作應該再次禁用文本框並恢復文本框的前一個值),但沒有任何反應,並且文本框保持不變。在CheckedChanged事件最終被解僱之前,我必須再次選中並取消選中複選框。當asp驗證器觸發時,服務器端事件不會第一次觸發

可能很重要的是要注意,這些在UpdatePanels中,並且在一個點上它們在面板中工作。我們很茫然,如果有人有任何想法,我會很感激。

回答

0

添加代碼,至少是aspx,將有助於發現問題。

沒有任何代碼,我最好的猜測是將您的CheckBox CausesValidation屬性設置爲"false",即使存在驗證錯誤,它也會允許它回傳。

1

我遇到了同樣的問題。在我的情況下,它必須做一個更新面板。 我有一個更新面板與幾個複選框。基於其中一個複選框的設置,驗證器必須啓用/禁用,但驗證器位於updatepanel之外的另一個控件中。

會發生什麼情況是,如果您選中/取消選中複選框,則會觸發ajax-postback。因此,客戶端驗證未正確恢復。因此,當您提交頁面時,客戶端驗證沒有找到,而是服務器端驗證激發。由於您的頁面完成了回發,客戶端驗證又被綁定了。當你再次點擊提交按鈕時,你會發現它們會起作用。

最簡單的解決方案是將控件與客戶端驗證器放在更新面板中。

相關問題