Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET默认按钮_Asp.net_Master Pages - Fatal编程技术网

ASP.NET默认按钮

ASP.NET默认按钮,asp.net,master-pages,Asp.net,Master Pages,我有一个母版页,上面有一个搜索框和按钮。此搜索功能将接管使用此母版页的所有my web表单的“enter”键。也就是说,如果我有一个使用此母版页的登录页面,用户输入用户名/密码并点击“回车”,系统将执行搜索,而不是登录用户 设置默认提交按钮的最佳方式是什么。我可以在asp面板中包装所有内容并设置DefaultButton属性,但这似乎有点乏味。有更好的方法吗?在文本框上设置焦点 Page.RegisterStartupScript(“SetFocus”,“document.getElementB

我有一个母版页,上面有一个搜索框和按钮。此搜索功能将接管使用此母版页的所有my web表单的“enter”键。也就是说,如果我有一个使用此母版页的登录页面,用户输入用户名/密码并点击“回车”,系统将执行搜索,而不是登录用户


设置默认提交按钮的最佳方式是什么。我可以在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因为它不回答问题或帮助回答问题。