1

私はasp:TextBox次のようなものを持っています

<asp:TextBox runat="server" AutoPostBack="True" ID="txtG1" ontextchanged="txtG1_TextChanged" onmouseout="javascript:RefreshIt(this)"/>

テキストボックスからマウスアウトRefreshIt()するたびに正しく起動するJavascript関数。

ontextchangedmouseout イベントで のイベントをトリガーしようとしていasp:TextBoxます。

さまざまな Stck Overflow の投稿で、次の手法が推奨されていますが、うまくいかないようです。

function RefreshIt(selectObj){
 selectObj.ontextchanged();  
}

function RefreshIt(selectObj){
 selectObj.fireEvent('ontextchanged');  
}

どんな助けでも大歓迎です。

4

3 に答える 3

4

参照:https ://stackoverflow.com/a/3777/892536

このリンクを使用して、私はあなたが探しているのと同じ結果を生み出す何かを思いつくことができました。これがアプリケーションにとって問題ないかどうかはわかりませんが、機能します。

Aspx:

引数を使用してポストバックを実行するようにRefreshIt関数を変更しました。

  <script type="text/javascript">
    function RefreshIt(selectObj) {
      __doPostBack('<%= Page.ClientID %>', selectObj.name);
    }
  </script>

</head>
<body>
  <form id="form1" runat="server">
  <div>

    <asp:TextBox runat="server" AutoPostBack="True" ID="txtG1" OnTextChanged="txtG1_TextChanged"
      onmouseout="javascript:RefreshIt(this);" />

    <br />
    <br />
    Text Changed:&nbsp;

    <asp:Label ID="Label1" runat="server"></asp:Label>

  </div>
  </form>
</body>

コードビハインド:

ページに「IPostBackEventHandler」を追加し、「RaisePostBackEvent」関数を処理しました。

public partial class _Default : System.Web.UI.Page, IPostBackEventHandler
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    public void RaisePostBackEvent(string Arg)
    {
        if (txtG1.ID == Arg)
            txtG1_TextChanged(txtG1, null);
    }

    protected void txtG1_TextChanged(object sender, EventArgs e)
    {
        Label1.Text = System.DateTime.Now.ToString();
    }
}
于 2012-06-27T00:13:32.607 に答える
0

テキストボックスの AutoPostBack プロパティを true に設定すると、テキストが変更されるたびに自動的にポストバックされ、textchanged イベントが発生します。

単純

于 2013-02-18T16:28:26.763 に答える