2015-07-10 92 views
0

說,例如,我有一個asp按鈕:當用戶點擊asp按鈕時,如何模擬鍵盤按鈕?

<asp:Button id="btnCustomDropDown" 
Text="*" 
OnClick="txtOutputRating_btnPressed" 
runat="server"/> 

當用戶按下該按鈕,我想按下一個鍵盤按鍵。例如鍵盤上的向下鍵。我在後端想着這樣的事情。這可能嗎?

void txtOutputRating_btnPressed(Object sender, EventArgs e) 
    { 
     System.Windows.Forms.SendKeys.Send("{DOWN}"); 
    } 
+0

借你想去哪裏被按下鍵盤按鍵?用戶點擊客戶端機器上的按鈕,而您的代碼隱藏在服務器上運行... –

+0

@PaoloTedesco我希望它在用戶端被按下。 – SimplyZ

回答

0

簡短的回答是否 - 它不起作用。

長的答案是...... 它完全取決於您的軟件堆棧(例如,您運行的是什麼Web服務器)。

在IIS下,您的代碼將運行但不起作用。 IIS(我相信)作爲不允許UI交互的服務運行。

如果您正在使用VS dev服務器運行,那麼您的代碼可能僅適用於本地計算機。

即使您發現允許用戶界面交互來託管您的頁面的生產就緒Web服務器,您的代碼隱藏仍在服務器上運行。沒有用於將按鍵注入系統的客戶端Web瀏覽器API。

+0

謝謝。這是非常豐富的。 – SimplyZ

0

試試這個 - JS代碼this thread

<asp:Button OnClientClick="pressDown();" /> 

<script> 
    var keyboardEvent = document.createEvent("KeyboardEvent"); 
    var initMethod = typeof keyboardEvent.initKeyboardEvent !== 'undefined' ? "initKeyboardEvent" : "initKeyEvent"; 

    function pressDown() { 
     keyboardEvent[initMethod](
      "keydown", // event type : keydown, keyup, keypress 
      true, // bubbles 
      true, // cancelable 
      window, // viewArg: should be window 
      false, // ctrlKeyArg 
      false, // altKeyArg 
      false, // shiftKeyArg 
      false, // metaKeyArg 
      40, // keyCodeArg : unsigned long the virtual key code, else 0 
      0 // charCodeArgs : unsigned long the Unicode character associated with the depressed key, else 0 
     ); 

     document.dispatchEvent(keyboardEvent); 
    } 
</script>