非表示の 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);
}