如何在WebForms中捕获功能键?

时间:2015-08-27 15:18:44

标签: vb.net webforms

我对使用VB.NET Web应用程序的经验很少。

我想知道如何在“VB WebForms应用程序(Web应用程序)”中捕获功能键(F1,F2 ... F12)。

我一直在搜索引擎上搜索,甚至在stackoverflow上搜索,但我不断得到满足VB.NET Windows Forms的结果,其中显示了_keydown事件的例子,如

Private Sub xyz_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown

我试着查看我的WebForm的不同事件,比如Form的事件,TextBox的事件等,但无法在任何地方找到它。所以我认为这些仅适用于Windows窗体。

我想做的是如下 -

  1. 当用户按下F1键时,在TextBox中,打开一个具有带有某些数据的Gridview的新表单
  2. 用户点击一行,并在变量中捕获此行的值(一个或多个),表单应该关闭,控件应该返回到带有捕获的行数据的TextBox。
  3. 另外我如何在TextBox的任何特定行上设置setFocus?

    有人可以给我一个小例子来说明如何做到这一点。

1 个答案:

答案 0 :(得分:0)

你无法在服务器端捕获它,但也许你可以试试这个:

<script type="text/javascript">
$(document).on("keypress", function (e) {
        var code = e.which;
        if (code == 123) { // The F12 Key
            $.ajax({
                type: "POST",
                url: "YourCallingPage.aspx/OpenForm",
                contentType: "application/json; charset=utf-8",
                dataType: "json"
            });
        }
    });
</script>

然后在YourCallingPage.aspx的代码隐藏中(文本框所在的页面)添加以下方法(或者您为方法命名的任何内容):

<System.Web.Services.WebMethod()> _
Public Shared Sub OpenForm() 
  HttpContext.Current.Response.Redirect("FormThatHasGrid.aspx")
End Sub

现在,一旦你重定向回到YourCallingPage.aspx,我猜你可以将选定的网格值附加到查询字符串并填充文本框,或者其他方法,但这只是一个快速而肮脏的想法,可能适用于你。