2

1 つのユーザー コントロールが登録された ASP.NET ページがあります。

私は1つのサーバーコントロールを持っています

<asp:LinkButton ID="vidoUpdatebtn" OnClick="vidoUpdatebtn_Click" runat="server">LinkButton</asp:LinkButton>

.csで私は扱います

 protected void vidoUpdatebtn_Click(object sender, EventArgs e)
    {
        //do something
        ScriptManager.RegisterStartupScript(this, this.GetType(), "myscript", "doSomeThing()", true);

    }

ユーザーコントロールには関数 doSomeThing() があります

 function doSomeThing() {
         alert("TestReady");
     }

LinckButon 登録機能をクリックしても機能しません

4

3 に答える 3

3

これを PageLoad に書き込みます (あなたが書いていたものからの唯一の変更点は、登録の瞬間です -- PageLoad は Click ではなく、Click は遅すぎて、ここに JavaScript 関数の実際の実装を書かなければならないという顔です):

    protected void Page_Load(object sender, EventArgs e) {
        ScriptManager.RegisterStartupScript(this, this.GetType(), "myscript", 
@"function doSomeThing() {
    alert(""TestReady"");
}"
        , true);
    }

これは asp:LinkBut​​ton タグ内にあります (OnClientClick 属性を指定する必要があります)。

<asp:LinkButton ID="vidoUpdatebtn" runat="server" OnClick="vidoUpdatebtn_Click" OnClientClick="doSomeThing()" >LinkButton</asp:LinkButton>

そして、それはうまくいくはずです。

于 2013-02-23T17:14:50.673 に答える
0

この方法を試しましたか:

aspx ページにスクリプト マネージャーを追加します。

<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" />

コードビハインド:

Page.ClientScript.RegisterStartupScript(this.GetType(),"myscript", "doSomeThing()",true);
于 2013-02-23T17:05:26.867 に答える
0

ボタンのクリック時にクライアント側のコードを実行する場合は、OnClick イベントの代わりに OnClickClick プロパティを使用できます。これにより、ポストバックが不要になり、ユーザーにすぐにフィードバックが返されます。

例えば

<asp:LinkButton ID="vidoUpdatebtn" OnClientClick="alert('TestReady'); return false;" runat="server">LinkButton</asp:LinkButton>
于 2013-02-23T17:05:57.117 に答える