您可以将不可见的 LinkButton 添加到您的页面(例如带有空白文本的 LinkButton),并从您的客户端onKeyUp
事件调用 LinkButton 的click()
方法并捕获Click
事件服务器端。
要传递参数,您可以使用客户端和服务器端均可读取的任何控件,例如隐藏字段。
例如 - 您的 HTML 标记可能如下所示:
<asp:TextBox ID="xtxtMyText" runat="server" onkeyup="doMyPostback()"></asp:TextBox>
<asp:HiddenField ID="xhidParam" runat="server" />
<asp:LinkButton ID="xlnkMyPostBack" runat="server" OnClick="xlnkMyPostBack_Click"></asp:LinkButton>
<script type="text/javascript">
function doMyPostback(e) {
var evt = window.event ? window.event : e;
if (evt.keyCode == 13) {
document.getElementById('xhidParam').value = document.getElementById('xtxtMyText').value;
document.getElementById('xlnkMyPostBack').click()
}
}
</script>
在这里,您有一个触发keyUp
事件的文本框、一个导致服务器端Click
事件的隐藏链接按钮和一个用于传递参数的隐藏字段。在这种情况下,如果用户按 Enter 键,文本框的内容将被复制到隐藏变量并单击链接按钮。
在服务器端,您可以处理该事件并从隐藏字段中读取传递的参数,例如
protected void xlnkMyPostBack_Click(object sender, System.EventArgs e)
{
Response.Write(xhidParam.Value);
}