比方说,我有一个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)
简短的回答是否定的 - 它不会起作用。
答案很长...... 它完全取决于您的软件堆栈(例如,您正在运行的Web服务器)。
在IIS下,您的代码将运行但不起作用。 IIS(我相信)作为一项不允许具有UI交互性的服务运行。
如果您正在使用VS dev服务器运行,那么您的代码可能仅适用于您的本地计算机。
即使您找到允许UI交互来托管页面的生产就绪型Web服务器,您的代码隐藏也会在SERVER上运行。没有用于将按键注入系统的客户端Web浏览器API。
答案 1 :(得分: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>