1

グリッドビューの選択が変更されているときに、JavaScriptコードを呼び出したいという問題があります。しかし、JavaScriptを起動できません。どうやってやるの?

//HTML側

<input ID="addressinput" type="text"  runat="server" style="display:none;"/>

<asp:Button ID="Button1" runat="server" Text="Button" style="display:none;" OnClientClick="return myfunction();" onclick="Button1_Click"  />

//Javascript

function myfunction() {
    FindLocaiton();
}

//C#

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
    addressinput.Value = GridView1.SelectedRow.Cells[1].Text;
     Button1.Click += new EventHandler(Button1_Click);
}

protected void Button1_Click(object sender, EventArgs e)
{

}
4

2 に答える 2

3

次のコードに従って、java スクリプト関数 myfunction() が最初に実行され、次にサーバー側のボタン クリック イベントが実行されます。そのため、サーバー側コードの後に​​ JavaScript コードを実行するには、ボタン クリック イベントに次のコードを追加する必要があります。

ClientScript.RegisterStartupScript(this.GetType(), "msg", "myfunction();")

以下は、私がテストしたコードとその動作です。

ASPX コード。

<script type="text/javascript">
    function myfunction() {

        alert('In JavaScript Code after server side code execution');
    }
</script>

   <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />

C# コード :-

    protected void Button1_Click(object sender, EventArgs e)
    {
        Response.Write("In Button Click event");
        ClientScript.RegisterStartupScript(this.GetType(), "msg", "<script language=javascript>myfunction();</script>");
    }
于 2013-11-03T17:20:07.150 に答える
1

runat サーバーでリテラルを配置し、stringbuilder 内の javascript サーバーサイドでこのリテラルを埋めます

于 2013-11-03T13:57:15.640 に答える