0
<td><input type="image" style="border-width:0" alt="Do an Edit" title="Edit the repeater row" tabindex="0" src='<%=ResolveUrl("~/css/image.png") %>' onclick='showModal(<%#Container.ItemIndex %>); return false;'/></td>

私はすでにonClick()JavaScriptメソッドを呼び出すために使用しています。ここで、この要素に別のイベントを追加して、サーバー側のイベントをトリガーonKeyUpし、リピーターの 1 つのパラメーターをサーバー側に渡します。

これは可能ですか、最初に javaScript を呼び出す必要があります。次に、ページ上の Javascript がサーバー側に呼び出されます。(このように、サーバー側コードのメソッドは静的でなければならないと思います)。

4

1 に答える 1

0

非表示の LinkBut​​ton をページに追加し (たとえば、テキストが空白の LinkBut​​ton)、クライアント側のonKeyUpイベントから LinkBut​​ton の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);
}
于 2012-06-18T21:46:36.160 に答える