如何将javascript直接嵌入到ASP.net自定义控件中?
我正在构建我的第一个用户控件,我希望将控件所需的javascript打包到程序集中,这样最终用户就不必担心包含依赖项。我遵循了Scott Mitchell()的教程,但我似乎无法让它正常工作 以下是我迄今为止所做的工作: 我创建了一个collapsablepanel.js文件,其中包含以下函数:如何将javascript直接嵌入到ASP.net自定义控件中?,asp.net,javascript,custom-controls,custom-server-controls,Asp.net,Javascript,Custom Controls,Custom Server Controls,我正在构建我的第一个用户控件,我希望将控件所需的javascript打包到程序集中,这样最终用户就不必担心包含依赖项。我遵循了Scott Mitchell()的教程,但我似乎无法让它正常工作 以下是我迄今为止所做的工作: 我创建了一个collapsablepanel.js文件,其中包含以下函数: function TogglePanel(panelId) { // $(panelId + ' .PanelContent').toggle(); alert(panelId);
function TogglePanel(panelId) {
// $(panelId + ' .PanelContent').toggle();
alert(panelId);
}
在属性面板下,我将构建操作设置为“嵌入式资源”。此文件位于我的类库项目中的脚本/目录中。我的项目的根命名空间是webstation.WebControls,因此如果我的理解是正确的,我应该通过“webstation.WebControls.scripts.collapsablepanel.js”引用js文件
我在自定义控件的类声明之前添加了以下行:
<Assembly: WebResource("webstation.WebControls.scripts.CollapsiblePanel.js", "text/javascript")>
当我渲染控件时,onclick事件中有一个带有函数“TogglePanel(this.id);”的按钮,但当我单击该按钮时,会出现一个错误,表明该函数未定义。如果有人知道我将如何开始使用嵌入式javascript,我将非常感谢您的帮助
迈克找到了它
问题是我在资源名称中包含了“scripts”,所以我有“webstation.WebControls.scripts.collapsablepanel.js”
我决定尝试一下,所以我:
“webstation.WebControl.CollapsablePanel.js”
这就成功了
这有点让人困惑,因为所有文档都明确说明了将路径作为命名约定的一部分,但可能是我在项目中包含文件夹时出错了
迈克
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