繁体   English   中英

如何将javascript直接嵌入到ASP.net自定义控件中?

[英]How do I embed javascript directly into my ASP.net Custom Control?

我正在构建我的第一个用户控件,并且希望将控件所需的javascript与程序集打包在一起,因此最终用户不必担心会包含依赖项。 我遵循了Scott Mitchell的教程( http://aspnet.4guysfromrolla.com/articles/080906-1.aspx ),但我似乎无法使其正常运行。

到目前为止,这是我所做的:

我创建了一个CollapsiblePanel.js文件,其中包含以下功能:

function TogglePanel(panelId) {
    //    $(panelId + ' .PanelContent').toggle();
    alert(panelId);
}

在属性面板下,将“构建操作”设置为“嵌入式资源”。 该文件位于我的类库项目中的scripts /目录中。 我项目的根名称空间是webstation.WebControls,因此,如果我的理解正确,我应该通过“ webstation.WebControls.scripts.CollapsiblePanel.js”引用js文件。

我在自定义控件的类声明之前添加了以下行:

<Assembly: WebResource("webstation.WebControls.scripts.CollapsiblePanel.js", "text/javascript")>

我在自定义控件中覆盖了OnPreRender事件,并添加了以下内容:

Protected Overrides Sub OnPreRender(ByVal e As System.EventArgs)

    Page.ClientScript.RegisterClientScriptInclude("wsWebControlsCollapsiblePanel", _
                  Page.ClientScript.GetWebResourceUrl(Me.GetType(), "webstation.WebControls.scripts.CollapsiblePanel.js"))

    MyBase.OnPreRender(e)

End Sub

呈现控件时,我有一个带有功能“ TogglePanel(this.id);”的按钮。 在onclick事件中,但是当我单击按钮时,我收到一条错误消息,提示未定义函数。 如果有人知道我将如何开始使用嵌入式JavaScript,我将非常感谢您的帮助,

麦克风

找到了,

问题是我在资源名称中包含了“脚本”,所以我有了“ webstation.WebControls.scripts.CollapsiblePanel.js”

我决定尝试一下,所以有了:“ webstation.WebControls.CollapsiblePanel.js”

然后就成功了。

这有点令人困惑,因为所有文档都特别说明了将路径作为命名约定的一部分,但是在项目中包含文件夹时,也许我做错了。

麦克风

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM