我有一个面板,其中包含一些文本框和一个提交按钮,以及一个设置为在按下按钮时触发的更新面板。当输入按下时,UpdatePanel不会触发
如果我按下按钮,它将正常工作。但是,如果我按下控件上的回车键,它会回传整个页面。
我将该按钮设置为面板中的默认按钮,但仍会回传整个页面。有任何想法吗?
我有一个面板,其中包含一些文本框和一个提交按钮,以及一个设置为在按下按钮时触发的更新面板。当输入按下时,UpdatePanel不会触发
如果我按下按钮,它将正常工作。但是,如果我按下控件上的回车键,它会回传整个页面。
我将该按钮设置为面板中的默认按钮,但仍会回传整个页面。有任何想法吗?
在面板上设置一个按钮作为默认值总是有点棘手。我已经把一个方法在公共库周围只是这个问题:
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自己没有设置它在静态方法。
在UpdatePanel的属性,设置如下:
ChildrenAsTriggers =真 的UpdateMode =总是
如果你这样做,你不必指定何时触发更新面板,它会自动将当你的任何控件导致回发时被触发。
这并没有工作,它仍然发回整个页面,我想象,因为这只有当按钮在更新面板中才起作用。 – NibblyPig 2009-10-07 15:16:07
Bahahahaha!有效!你是个天才! – NibblyPig 2009-10-07 15:33:08