为控件在后台设置快捷键

代码如下:

    /// <summary>
    /// 按钮设置快捷键
    /// </summary>
    /// <param name="pageCurrent">Page</param>
    /// <param name="slkey"></param>
    private void SetShortcutKey(System.Web.UI.Page pageCurrent, SortedList slkey)
    {
        int icount = slkey.Count;
        string strjavascript = "<script type=\"text/javascript\"> "
                                 + "document.onkeydown = function() "
                                 + "{"
                                 + "     if(event.keyCode==" + slkey.GetByIndex(0) + ")"
                                 + "     { "
                                 + "         document.getElementById('" + slkey.GetKey(0) + "').click();"
                                 + "     }";
        for (int j = 1; j < icount; j++)
        {
            strjavascript += "if(event.keyCode==" + slkey.GetByIndex(j) + ")"
                          + " { "
                          + "       document.getElementById('" + slkey.GetKey(j) + "').click();"
                          + " }";
        }
        strjavascript += "}</script>";
        pageCurrent.ClientScript.RegisterStartupScript(pageCurrent.GetType(), Guid.NewGuid().ToString(), strjavascript);
    }
    SortedList _shortcutkeys;
    public void AddShortcutKey(WebControl control, string keycode)
    {
        if (_shortcutkeys == null)
        {
            _shortcutkeys = new SortedList();
        }
        _shortcutkeys.Add(control.ClientID, keycode);
    }

        /// <summary>
        /// 设置快捷键
        /// </summary>
        private void ShortcutKey()
        {
            AddShortcutKey(btnSave, ShortKeyConst.F7);
            AddShortcutKey(btnSubmit, ShortKeyConst.F12);
        }

    /// <summary>
    /// 设置快捷键
    /// </summary>
    /// <param name="writer"></param>
    protected override void Render(HtmlTextWriter writer)
    {
        if (_shortcutkeys != null)
        {
            SetShortcutKey(this, _shortcutkeys);
        }
        base.Render(writer);
    }

    public class ShortKeyConst
    {
        public const string F2 = "113";
        public const string F7 = "118";
        public const string F8 = "119";
        public const string F9 = "120";
        public const string F11 = "122";
        public const string F12 = "123";
        public const string Esc = "27";
    }

 

转载于:https://www.cnblogs.com/gzh4455/archive/2012/09/03/2668640.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值