所以趕快把他整理一下摟~~
問題描述:
現在我有兩個按鈕,都擺放在UpdatePanel內,Button1的CausesValidation = True,Button2的CausesValidation = False,那此時我故意讓它驗證不通過,所以我點選按了Button1會出現Client端的錯誤提示訊息,緊接著我馬上按下Button2,發現沒有動作....再點一次...OK了ㄟ?
為什麼要點兩次才會有動作呢?
解決方案:
詳細原因我也不是很清楚,但是我去追蹤了一下ASP.NET的JavaScript Code,發現之所以沒有動作是因為它沒有觸發submit,那為什麼沒有觸發呢?是因為ASP.NET的JavaScript裡面定義了一個變數"Page_BlockSubmit",這個變數是為了要避免同一個事件連續被submit兩次吧?
所以我就在每一個button上面多放了一個Javascript Function來改變這一個值。
下面是我的Code
Function
function __ConfirmToDo(CausesValidation , ValidationGroup)
{
var result = true;
if (CausesValidation == '1')
{
if (typeof(Page_ClientValidate) == 'function')
{
result = Page_ClientValidate(ValidationGroup);
}
}
//Do other validation
if(result == true)
{
Page_BlockSubmit = false;
return true;
}
return false;
}
Button的UseSubmitBehavior屬性設為False
Button的Click事件附加如下
Me.Button2.Attributes.Add("onclick", "javascript:if(__ConfirmToDo('" & iif(Me.Button2.CausesValidation = True , "1","0") & "','" & Me.Button2.ValidationGroup & "') == false){ return false;}")
這樣就萬事OK瞜~~
我想應該是啦?因為還沒有遇到衝突~~啦啦啦~~
沒有留言:
張貼留言