5

在 ASP.net Webforms 中,您如何检测某人按下了哪个文本框?

请不要使用 Javascript 答案。

我需要在使用 VB.NET 的代码中处理这一切。

4

6 回答 6

2

我怀疑没有javascript就无法完成-当您按Enter键时,浏览器会提交表单-它不会提交具有焦点的字段。因此,除非您使用 JS 将该信息添加到正在提交的表单中,否则您就不走运了。

于 2008-09-17T20:27:32.463 回答
2

为什么需要确定按下的是哪个 TextBox?您是否正在查看哪个 TextBox 被聚焦以便触发正确的按钮单击事件?

如果你想做这样的事情,我做过的一个技巧是在他们自己的面板中“分组”适当的表单元素,然后相应地设置“DefaultButton”属性。

这样做可以让我在单个表单上拥有“按名称搜索”、“按部门搜索”、“按 ID 搜索”等文本框/按钮组合,并且仍然允许用户键入他们的查询参数,按 Enter,然后在后面的代码中调用正确的搜索方法。

于 2008-09-17T20:33:14.697 回答
1

不使用 Javascript,你就做不到。该信息不会从客户端浏览器传送到服务器。

于 2008-09-17T20:27:57.800 回答
1

据我所知,服务器端脚本无法检测到这一点。它根本不会被发送到服务器。它必须在客户端完成(即使用 Javascript),然后发送到服务器。

于 2008-09-17T20:28:39.873 回答
1

我通过查看服务器端的 Request.Form 对象来查看搜索框是否有值,为一个站点的搜索解决了这个问题。我在我的所有页面(或母版页的基类)继承的基类中做到了这一点。如果它有一个值,那么很有可能有人输入了一些东西并按了回车键,所以我处理了搜索。

于 2008-09-17T20:34:24.087 回答
1

在事件处理程序中,“源”对象(事件处理程序的第一个参数)是引发事件的对象。将其键入按钮并获取名称,或使用反射从非类型对象中获取信息。

此外,如果控件是您没有引发其自己的事件的 Web 控件的子控件(只是说...),那么您可以使用 OnBubbleEvent 来确定发生了什么。OnBubbleEvent 还有一个“源”参数,您可以键入或使用反射。

于 2008-09-17T20:39:32.827 回答