2

这似乎是一个常见问题,但我找不到解决方案。

我在我创建的登录控件中输入我的用户名和密码。然后,我输入密码后按 Enter 键,页面就会刷新。它会触发页面加载事件,但不会触发单击事件上的按钮。

如果我按下提交按钮,那么一切正常。

4

3 回答 3

3

使用表单默认按钮是正确的,但您需要为其提供正确的 id,因为它将呈现为 HTML。

所以你按照乔恩上面所说的那样做:

<form runat="server" DefaultButton="SubmitButton">

但请确保您使用将呈现的 Button 名称。您可以通过在您的控件中公开 Button 或返回其 ClientId 的方法来实现这一点。

假设您的按钮称为 btnSubmit,并且您的控件 ucLogin 的实现。

给你的表格一个id

<form runat="server" id="form1">

然后在您的页面加载页面后面的代码中,通过将您的按钮客户端 ID 交给它来设置 DefaultButton。

protected void Page_Load(object sender, EventArgs e)
{
   form1.DefaultButton = ucLogin.btnSubmit.ClientID;
}
于 2008-10-02T11:08:00.887 回答
1

如果您使用的是 ASP.NET 2.0 或更高版本,则可以为页面的表单设置默认按钮属性:

<form runat="server" DefaultButton="SubmitButton">
于 2008-10-02T09:52:35.013 回答
0

在文本输入上按 ENTER 会执行Form.onsubmit,而不是Button.onclick

我想这是受到这样一个事实的启发,即您可以拥有一个没有实际提交按钮的表单(仅取决于 ENTER 的使用)。

于 2008-10-02T09:48:58.500 回答