我有一个带有一些文本框和一个提交按钮的面板,以及一个设置为在按下按钮时触发的更新面板。
如果我按下按钮,它会正常工作。但是,如果我在控件上按 Enter,它会回传整个页面。
我将该按钮设置为面板中的默认按钮,但它仍然回传整个页面。有什么想法吗?
最佳答案
将面板上的单个按钮设置为默认按钮总是有点棘手。针对这个问题,我在一个公共(public)库中保留了一个方法:
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,而无需将其设置为静态方法。
关于asp.net - 按下回车键时不触发 UpdatePanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1532048/