0

我有一个Enable.js具有功能的文件Enable()。我想Enable从 C# 代码隐藏中调用此函数。我的.js文件和 c# 文件在同一个应用程序中。

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

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

4 回答 4

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 回答
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 回答
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')");

于 2013-02-22T10:06:46.543 回答
0

你在这里犯了一个错误:

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

您试图作为参数传递的Enable(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 回答