2009-10-07 38 views
3

我有一個面板,其中包含一些文本框和一個提交按鈕,以及一個設置爲在按下按鈕時觸發的更新面板。當輸入按下時,UpdatePanel不會觸發

如果我按下按鈕,它將正常工作。但是,如果我按下控件上的回車鍵,它會回傳整個頁面。

我將該按鈕設置爲面板中的默認按鈕,但仍會回傳整個頁面。有任何想法嗎?

回答

3

在面板上設置一個按鈕作爲默認值總是有點棘手。我已經把一個方法在公共庫周圍只是這個問題:

public static void EnterOnKeyDown(WebControl targetControl, WebControl controlToPress) 
{ 
    targetControl.Attributes.Add("onkeydown", 
     "if(event.which || event.keyCode){if ((event.which == 13)" + 
     "|| (event.keyCode == 13)) {document.getElementById('" + 
     controlToPress.ClientID + "').click();return false;}} else {return true};"); 
} 

你可以在任何地方,你喜歡把這個方法,並調用它,如下所示:

EnterOnKeyDown(someTextBoxInYourPanel, yourSubmitButton); 

你可以很容易地使用上面的JavaScript自己沒有設置它在靜態方法。

+0

Bahahahaha!有效!你是個天才! – NibblyPig 2009-10-07 15:33:08

0

在UpdatePanel的屬性,設置如下:

ChildrenAsTriggers =真 的UpdateMode =總是

如果你這樣做,你不必指定何時觸發更新面板,它會自動將當你的任何控件導致回發時被觸發。

+0

這並沒有工作,它仍然發回整個頁面,我想象,因爲這隻有當按鈕在更新面板中才起作用。 – NibblyPig 2009-10-07 15:16:07

相關問題