ASP.NET默认按钮
我有一个母版页,上面有一个搜索框和按钮。此搜索功能将接管使用此母版页的所有my web表单的“enter”键。也就是说,如果我有一个使用此母版页的登录页面,用户输入用户名/密码并点击“回车”,系统将执行搜索,而不是登录用户ASP.NET默认按钮,asp.net,master-pages,Asp.net,Master Pages,我有一个母版页,上面有一个搜索框和按钮。此搜索功能将接管使用此母版页的所有my web表单的“enter”键。也就是说,如果我有一个使用此母版页的登录页面,用户输入用户名/密码并点击“回车”,系统将执行搜索,而不是登录用户 设置默认提交按钮的最佳方式是什么。我可以在asp面板中包装所有内容并设置DefaultButton属性,但这似乎有点乏味。有更好的方法吗?在文本框上设置焦点 Page.RegisterStartupScript(“SetFocus”,“document.getElementB
设置默认提交按钮的最佳方式是什么。我可以在asp面板中包装所有内容并设置DefaultButton属性,但这似乎有点乏味。有更好的方法吗?在文本框上设置焦点 Page.RegisterStartupScript(“SetFocus”,“” 然后 在最后一个文本框的keydown事件中,您可以执行以下操作: 如果e.KeyCode=Keys,则输入 Me.Button1.Select()
如果使用窗体或面板的defaultbutton属性,则结束
<form defaultbutton=“button1” runat=“server”>
<asp:button id=“button1” text=“Same Page” runat=“server”/>
<asp:panel defaultbutton=“button2” runat=“server”>
<asp:textbox id=“foo” runat=“server”/>
<asp:button id=“button2” runat=“server”/>
</asp:panel>
</form>
正如您所发现的,当页面上有多个按钮时,默认按钮可能会导致问题。我会接受极客的建议,但通过删除setfocus客户端脚本来简化它,并通过在搜索文本框和登录文本框中添加keydown事件来扩展它,以便根据用户使用的是搜索框还是登录框,enter键触发正确的按钮,或任何其他要添加javascript的文本框
您可以将焦点设置为加载页面(如果愿意,可以使用代码隐藏)以节省用户一些鼠标操作,如果用户可以从一个合理的控件开始,则可以使用Tab键,但除此之外,用户正在与之交互的控件应该确定页面的流程以及enter键的作用。而不是使用javascript操作页面,您可以将搜索框和提交按钮放入母版页上的IFRAME中。如果焦点在iframe中,单击将提交搜索表单,如果用户位于页面内的主表单上,则他们将提交正常页面
src属性指向一个包含文本框和提交按钮的小型自包含aspx页面,该页面重定向到搜索结果表单。这是我们在项目中尝试的,似乎有效。我将搜索asp:按钮更改为asp:链接按钮。然后我添加了一些CSS样式给它一个背景图像,使它看起来像一个按钮。当按Enter键时,页面显然不使用LinkButtons来确定哪个按钮是默认操作。有趣的是,LinkButton仍然可以有与之关联的点击操作,因此我不必更改任何代码隐藏内容。OP表示,他知道这个选项,但想知道是否有更好的方法。我正试图解决这个问题的网站上有100多页的表单。如果必须将此代码添加到每个内部页面,那将太单调乏味了。我们是否可以在母版页级别告诉搜索按钮“永远不要假设这是默认按钮”?-1因为它不回答问题或帮助回答问题。