如何从C#代码调用javascript?

时间:2013-02-22 09:44:03

标签: c# javascript asp.net

我有一个Enable.js文件,其中包含Enable()个功能。我想从C#codebehind中调用这个Enable函数。我的.js文件和c#文件在同一个应用程序中。

我试过这个,但它对我没有帮助。

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

4 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

我可以在你的代码中看到“点击”。因此,我假设你需要点击一些按钮来调用Enable.js文件中的Enable(true)函数

请按照以下步骤操作:

  1. <head>部分中引用您的Enable.js文件,如下所示。

    <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');");
    }
    
  4. 如果您需要更多帮助,请告诉我。

答案 2 :(得分:0)

我写了一个很好的小函数,用于调用jquery或者只是基于我刚才看到的一些VB的C#中的通用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')”);

答案 3 :(得分:0)

你在这里犯了错误:

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

您尝试将其作为参数传递的文字字符串 true Enable(true)是不可能的。

你应该尝试这种方式,这样可能会有所帮助。Its only a sample for understanding

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

This Link将解释使用C#Code后面的参数调用javascript函数。

this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "xx",   
"<script>test("+x+","+y+");</script>");