0

関数を持つEnable.jsファイルがありEnable()ます。Enableこの関数を C# コードビハインドから呼び出したいと考えています。私の.jsファイルと c# ファイルは同じアプリケーションにあります。

私はこれを試しましたが、役に立ちません。

Page.ClientScript.RegisterStartupScript(this.GetType(), "click", "Enable(true)", true);
4

4 に答える 4

2

これを試して:

   ScriptManager.RegisterClientScriptInclude(
                this,
                typeof(Page),
                "Enable-js",
                ResolveClientUrl("~/scripts/Enable.js"));


ScriptManager.RegisterStartupScript(
                this, GetType(), Guid.NewGuid().ToString(),
                "Enable(True);", true); 

http://msdn.microsoft.com/pt-br/library/bb337005.aspx

于 2013-02-22T09:58:00.583 に答える
2

コードに「クリック」が表示されました。したがって、Enable.jsファイル内のEnable(true)関数を呼び出すには、いくつかのボタンをクリックする必要があると思います

以下の手順に従います。

  1. 以下のようにセクション内で Enable.js ファイルを参照します<head>

    <script src="Scripts/Enable.js" type="text/javascript"></script>
    
  2. Enable.js ファイルを以下に示します。

    function Enable(var){
        alert(val)
    }
    
  3. のクリック イベントでEnable()関数を呼び出すには:Button1

    protected void Page_Load(object sender, EventArgs e){
        Button1.Attributes.Add("OnClick", "return Enable('true');");
    }
    

さらにサポートが必要な場合はお知らせください。

于 2013-02-22T10:35:08.097 に答える
0

少し前に見たいくつかの VB に基づいて、C# で jquery または一般的な JS を呼び出すための素敵な小さな関数を作成しました。

public bool runJQueryCode(string message)
{
    ScriptManager requestSM = ScriptManager.GetCurrent(Page);

    if (requestSM != null && requestSM.IsInAsyncPostBack)
    {
        ScriptManager.RegisterClientScriptBlock(Page, typeof(Page), Guid.NewGuid().ToString(), getjQueryCode(message), true);
    }
    else
    {
        Page.ClientScript.RegisterClientScriptBlock(typeof(Page), Guid.NewGuid().ToString(), getjQueryCode(message), true);
    }

    return true;
}

private string getjQueryCode(string jsCodetoRun)
{
    string x = "";

    x += "$(document).ready(function() {";
    x += jsCodetoRun;
    x += " });";

    return x;
}

したがって、runJqueryCode("alert('hey')"); を呼び出すだけです。

于 2013-02-22T10:06:46.543 に答える
0

あなたはここで間違いを犯しています:

Page.ClientScript.RegisterStartupScript(this.GetType(), "click", "Enable(true)", true);

パラメータとして渡そうとしているEnable(true)リテラル文字列をtrueにすることはできません。

この方法を試してみてください。役立つ場合があります。Its only a sample for understanding

string func = "showSuccessMessage('"+name+"');";
//Pass string as funcion in c#

このリンクでは、C# コード ビハインドからパラメーターを使用して JavaScript 関数を呼び出す方法について説明します。

this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "xx",   
"<script>test("+x+","+y+");</script>");
于 2013-02-22T10:34:09.683 に答える