2012-08-02 32 views
1

我已經在我的網頁下面的複選框:驗證防止複選框自動回傳

<asp:CheckBox ID="rbBuilding" runat="server" AutoPostBack="True" OnCheckedChanged="HandlerPackageOnCheckedChanged" Checked="True" CausesValidation="False" /> 
<asp:CheckBox ID="rbContent" runat="server" AutoPostBack="True" OnCheckedChanged="HandlerPackageOnCheckedChanged" CausesValidation="False" /> 

有基於複選框的組合上回發的邏輯點擊。除了一種情況,一切工作正常:

我打開額外的telerik radwindow,它在自己的驗證組中有一些驗證。如果我關閉窗口有任何驗證錯誤,那麼第一次點擊任何複選框 不會做postpack。

只有第一次點擊不起作用。下次我點擊一切工作正常。我試圖將複選框添加到他們自己的驗證組,並將套管驗證更改爲true。但行爲完全一樣。當我將測試javascript方法添加到該複選框的onclick中時,此方法被解僱而沒有問題。沒有回傳。

我也嘗試在窗口關閉時重置窗口驗證組的所有驗證器,它們被重置,但行爲沒有檢查,並且第一次單擊不起作用。

UPDATE

我做了一個詳細檢查,並意識到它只有當我在做的JavaScript發生:

window.Page_ClientValidate("MyGroup") 

對此我必須做之前做彈出窗口一些計算。 在動態驗證程序中,更新可驗證控件時,即使驗證失敗,eveything仍能正常工作。所以,問題是* Page_ClientValidate *

+0

我相信我遇到了同樣的問題。你有沒有解決這個問題? – Tom 2015-03-20 16:25:57

+0

nope,恐怕不行,而且我現在還沒有在這個項目上工作了兩年。 – Marcin 2015-03-23 12:32:47

+0

感謝您的回覆。我設法解決了這個問題,併發布了答案,以防其他人像我一樣絆倒了這個問題。 – Tom 2015-03-23 16:29:19

回答

1

我知道這是一個老問題,但我遇到了幾乎確切的問題,並感謝以下鏈接我能解決這個問題:

Issue with postbacks and clicking on controls twice

我最終將此代碼添加到我的代碼後面添加一個JavaScript事件處理程序複選框的click事件:

Checkbox1.Attributes.Add("onclick", "checkboxChanged();"); 

我加入下面的JavaScript:

function checkboxChanged(arg1) { 
    Page_BlockSubmit = false; 
} 

我的情況中的複選框也被設置爲CausesValidation設置爲false,但我不認爲這是此修復程序所必需的。希望這有助於某人。