2009-10-07 42 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

相关问题