当按下回车键时,UpdatePanel不会触发。

3
我有一个面板,里面有一些文本框和一个提交按钮,还有一个更新面板,当按下按钮时触发。
如果我按下按钮,它正常工作。但是如果我在控件上按回车键,它会提交整个页面。
我将按钮设置为面板中的默认按钮,但它仍然会提交整个页面。有什么想法吗?
2个回答

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
在 UpdatePanel 属性中设置以下内容:
ChildrenAsTriggers = True UpdateMode = Always
如果你这样做,就不必指定何时触发更新面板,当你的任何控件引起回发时,它将自动被触发。

这个方法不起作用,它仍然会提交整个页面,我想是因为只有在更新面板中按钮才能起作用。 - NibblyPig

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接