在ASP.net Webforms中,如何检测有人按下了哪个文本框?
请不要Javascript答案。
我需要在使用VB.NET的代码中处理它。
答案 0 :(得分:2)
我怀疑没有javascript就无法完成 - 当你按Enter键时,浏览器会提交表单 - 它不提交哪个字段有焦点。因此,除非您使用JS将该信息添加到提交的表单中,否则您将失去运气。
答案 1 :(得分:2)
为什么需要确定按哪个TextBox?您是否希望查看哪个TextBox正在被聚焦,以便您可以触发正确的按钮单击事件?
如果你想做这样的事情,我所做的一个技巧是在他们自己的面板中“分组”相应的表单元素,然后相应地设置“DefaultButton”属性。
这样做可以让我有一个“按名称搜索”,“按部门搜索”,“按ID搜索”等。单个表单上的文本框/按钮组合仍然允许用户键入他们的查询参数,点击输入,并在后面的代码中调用正确的搜索方法。
答案 2 :(得分:1)
不使用Javascript,你就是不能。该信息不会从客户端浏览器传送到服务器。
答案 3 :(得分:1)
据我所知,服务器端脚本无法检测到这种情况。它根本不会被发送到服务器。它必须在客户端(即使用Javascript)完成,然后发送到服务器。
答案 4 :(得分:1)
我通过查看Request.Form对象,服务器端来查找一个站点的搜索,以查看搜索框是否有值。我在一个基类中做到了,我的所有页面(或母版的基类)都继承自。如果它有一个值,那么输入的东西很可能是有人输入的,所以我处理了搜索。
答案 5 :(得分:1)
在事件处理程序中,“source”对象(事件处理程序的第一个参数)是引发事件的对象。键入按钮并获取名称,或使用反射从非类型对象中获取信息。
此外,如果控件是Web控件的子级,您没有提升自己的事件(只是说...),那么您可以使用OnBubbleEvent来确定发生了什么。 OnBubbleEvent还有一个“source”参数,你可以输入,或者使用反射。