ASP.NET中服务器端控件内, 如何使用回车直接提交? 50

不说废话,如题,比如说在一个页面中,既有用户登录(Login),又有页面搜索或者新用户注册(CreateUserWizard),那么就会造成这样的局面:无论光标在哪个控件... 不说废话, 如题, 比如说在一个页面中, 既有用户登录(Login), 又有页面搜索或者新用户注册(CreateUserWizard), 那么就会造成这样的局面:

无论光标在哪个控件区域内, 只要在页面中单击回车键, 则页面永远只提交最上方的控件.

比如说我的搜索控件(包含TextBox和asp:Button)在页面最上方, 但是我现在不想搜索, 我只想登录我的账号, 于是我在下方的Login控件内输入我的账号和密码, 然后习惯性的击回车, 但是遗憾的是, 我并没有登录网站, 而是直接进行了搜索.

如果想登录, 只能点击"用户登录"按钮, 但可想而知, 大部分人在搜索、注册、登录时都是极少去点按钮的,通常只会以回车代替。

引起这种现象的原因其实很简单,ASP.NET的页面中只允许出现一个<form runat="server">, 所以, 你一击回车, 页面只知道你要提交, 但不知道你要提交哪一部分, 默认提交最上方的控件.

####关于解决方案#####

我现在的解决方法很像是一种hack, 我在每组可提交的服务器端控件外嵌套<asp:panel>控件, 然后设置panel控件的defaultButton属性为内部所套控件的Button, 这样可以解决大部分问题, 但新问题如下:

1、频繁嵌套,影响执行效率,而且事实上我本来不需要panel控件,这样做有点浪费而且大而无当。

2、并不能从根本上解决问题,panel只能嵌套一层, 如果控件不只一层, 比如“用户注册”控件,是分好几层的,先让用户填写基本信息, 然后点击“下一步”,然后填写详细信息, 再“下一步“.......

这时,问题就有了, 填"基本信息"时, 回车键提交正常, 后面就不行了, 当我填完"详细信息"后, 一打回车, 又转到了"网页搜索".

####其它解决方案####
写一段Javascript, 当检测到页面中有回车键(13)时, 将回车(13)转化为Tab键(9).

if (event.keyCode == 13)
{
event.keyCode=9;
}

也有其他的, 不过跟这基本类似, 顶多加上一些别的判断, 这还不如用Panel呢, 这样做只能移动焦点, 根本不能提交, 严重不推荐.

####期待解决方案#####

完整的,详细的,完美的解决此类问题, javascript或者服务器端编程均可, 请附完整代码, 不要只讲道理, 因为大部分人都懂道理, 但懂道理不一定能写出代码, 此问题希望专业人士作答, 勿从网上搜索拷贝, 网上我都找过了, 都算不上好.

再次向回答者致敬!
展开
 我来答
rainee007
2008-08-09 · TA获得超过263个赞
知道小有建树答主
回答量:652
采纳率:0%
帮助的人:455万
展开全部
在Form上加一个默认的按钮,如,Submit按钮,
在Submit_Click()里编写提交动作所需的代码。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
371638041
2008-07-28 · TA获得超过100个赞
知道答主
回答量:170
采纳率:0%
帮助的人:160万
展开全部
if(textbox1.text!=""){
sou(string var);
}
if(textbox2.text!=""){
denglu(string var);
}
if(textbox3.text!=""){
zhuce(string var);
}
三个方法sou(string var); denglu(string var);zhuce(string var);

我是新手 这样可以么?。判断所填内容 哪个填了就执行哪个对应方法。。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
edzh
2008-08-09
知道答主
回答量:21
采纳率:0%
帮助的人:0
展开全部
思路,当你点击某个form是设置相关属性,然后onkeypress时触发一个事件,来判断到底点击了那个form,并提交到相应表单
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kid83
2008-07-28 · TA获得超过2081个赞
知道大有可为答主
回答量:1818
采纳率:0%
帮助的人:1997万
展开全部
建议把TabIndex靠前.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
秦开拓
2008-08-11 · TA获得超过189个赞
知道小有建树答主
回答量:168
采纳率:0%
帮助的人:116万
展开全部
用ajax技术
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式