Sharepoint web部件中的外部Javascript文件

Sharepoint web部件中的外部Javascript文件,javascript,sharepoint-2010,web-parts,Javascript,Sharepoint 2010,Web Parts,我正在创建一个sharepoint web部件,希望在其中调用外部javascript文件。我已经在以下位置创建了.js文件 C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\CustomJScript 调用函数时,其给定函数未找到错误。javascript文件的位置是否错误? 代码如下: protected override void CreateChildContr

我正在创建一个sharepoint web部件,希望在其中调用外部javascript文件。我已经在以下位置创建了.js文件

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\CustomJScript

调用函数时,其给定函数未找到错误。javascript文件的位置是否错误? 代码如下:

protected override void CreateChildControls()
{
    Page.ClientScript.RegisterStartupScript(
        this.GetType(), 
        this.ID, 
        "_spOriginalFormAction = document.forms[0].action;", 
        true);


       ClientScriptManager cs = Page.ClientScript;
        if (!cs.IsClientScriptIncludeRegistered("OnMouseOverScript"))
        cs.RegisterClientScriptInclude(
            this.GetType(), 
            "OnMouseOverScript", 
            ResolveUrl("/_layouts/CustomJScripts/MyJS.js"));
}

private void GetData(string strSchCode)
{

     Table t = new Table();

     TableRow tr = new TableRow();
     TableCell tc = new TableCell();

     tc.Attributes.Add("onmouseover", "return ShowInfo('AA');");
     tr.Controls.Add(tc);
     t.Controls.Add(tr);
     this.Controls.Add(t);
}

您必须将此javascript添加到Web部件。在我的Web部件中,我使用以下方法:

    protected override void OnPreRender(EventArgs e)
    {
        Page.ClientScript.RegisterStartupScript(GetType(), "MyScript",
            "<SCRIPT language='javascript' src='~/_layouts/CustomJScripts/MyJS.js'></SCRIPT>", false);
        base.OnPreRender(e);
    }

也许单引号有问题?e、 g.使用双引号而不是单引号:

tc.Attributes.Add("onmouseover", "return ShowInfo(\"AA\");");
我将使用该方法,然后将您的文件移动到14\TEMPLATE\LAYOUTS\1033\customjscript

ScriptLink封装ClientScriptManager调用以及其他功能。name参数是一个相对路径,这就是为什么javascript文件需要位于14\TEMPLATE\LAYOUTS\LCID目录中,其中LCID是您的语言编号

您的代码如下所示:

protected override void CreateChildControls()
{
    Page.ClientScript.RegisterStartupScript(
        this.GetType(), 
        this.ID, 
        "_spOriginalFormAction = document.forms[0].action;", 
        true);

    ScriptLink.Register(this.Page, "CustomJScripts/MyJS.js", true);
}

感谢Korin-Marek K.的快速回复。我已经尝试了你的代码,但它仍然给我以下错误:Microsoft JScript运行时错误:对象预期Hanks bender为你解答。但这并没有解决我的问题