0

私は現在、javascript コードで一連のイベントを実行した後、asp:button クリック イベントをトリガーする必要があるプロジェクトに取り組んでいます。

以下のコードを参照してください。

これは私のボタンで、クリックイベントです:

<asp:Button ID="btnRefresh" name="btnRefresh" runat="server" Text="btnRefresh" onclick="btnRefresh_Click" />

protected void btnRefresh_Click(object sender, EventArgs e)
{
    MyGrid.DataSource = null;
    MyGrid.DataSource = GetDataForGrid();
    MyGrid.DataBind();
}

ページのすべての JavaScript コードを保持する JavaScript ファイルを参照しました。.aspx ファイル内で JavaScript コードを混同するのはあまり好きではないので、この方法で行います。

これは、関数が外部 .js ファイルでどのように見えるかです。

function Refresh() {
    var btn = $(document).getElementById('btnRefresh');
    if (btn) {
        btn.click();
    }
    else {
        alert('false');
    }
}

私はまた、インターネットで見た他の方法を次のように試しましたが、すべてうまくいきませんでした:

document.getElementById('btnRefresh');
__doPostBack('btnRefresh', '');
__doPostBack('btnRefresh', 'Click');
$('#btnRefresh').click();

誰かが私にそれを行う良い方法を教えてもらえますか? ありがとうございました!

編集:

私がやりたいことはこれです: UpdatePanel 内にグリッドビューがあります。btnRefresh がクリックされたときに起動されるトリガーがあります。基本的に、グリッドビューを更新します。したがって、そもそもボタンをクリックしないため、ボタンの OnClick プロパティを使用して JavaScript 関数を呼び出すことはできません。btnRefresh_ClickGridView を更新するためにトリガーが起動されるように、外部 JavaScript からイベントを呼び出すことができる必要があります。

編集2:

btn以下の行を使用して、.aspx ページ自体でmy を定義しようとしました。

var btn = $("#");

また、JS コードを次のように変更しました。

関数 Refresh() { if (btn) { btn.click(); } 他の { 警告 ('false'); } }

jsは見ることができ、btnイベントは行を通過しましたがbtn.click()btnRefresh_Clickそれでも起動しませんでした。ここで何か不足していますか?

4

5 に答える 5

1

JS ファイルを参照するため、2 つのオプションがあります。ボタンを渡すか、ボタンを に設定しClientIDます。ClientIDModeStatic

ID を JS 関数に渡すことをお勧めします。

function Refresh(id) {
    var btn = $(document).getElementById(id);
    if (btn) {
        btn.click();
    }
    else {
        alert('false');
    }
}

別の JS 関数で呼び出す場合は、ClientID.

function doSomthing(){
    //do this
    //do that
    Refresh('<%=btnRefresh.ClientID%>');
}

しかし、あなたが言ったように、JS を aspx ページに入れたくない場合は、ボタンのClientIDMode = Static.

<asp:Button ID="btnRefresh" ClientIDMode="Static" name="btnRefresh" runat="server" Text="btnRefresh" onclick="btnRefresh_Click" />
于 2012-09-18T03:25:34.513 に答える
0

ここでは、OnClientClickプロパティを使用して、外部jsにある関数の名前を指定して呼び出すことができます。このプロパティは、サーバー側のイベントの実行前に実際に実行されるためです。

于 2012-09-18T03:04:12.450 に答える
0

ClientIDプロパティを見てみましょう。

このプロパティを使用してクライアント側でボタンの ID を取得し、その ID を使用してクリックをトリガーできます。

function Refresh() {
    var btn = $("#<%=btnRefresh.ClientID%>");
    if (btn) {
        btn.click();
    }
    else {
        alert('false');
    }
}

ただし、外部 JS ファイルではなく、<%=btnRefresh.ClientID%>と同じページでのみ機能することに注意してください。btnRefreshClientID は、ASP.NET によって動的に生成されます。

于 2012-09-18T03:08:18.817 に答える