我正在构建我的第一个用户控件,我想用程序集打包控件所需的javascript,这样最终用户就不必担心包含依赖项了。我遵循了Scott Mitchell的教程(http://aspnet.4guysfromrolla.com/articles/080906-1.aspx),但我似乎无法让它正常工作。
这是我到目前为止所做的:
我创建了一个包含以下功能的CollapsiblePanel.js文件:
function TogglePanel(panelId) {
// $(panelId + ' .PanelContent').toggle();
alert(panelId);
}
在属性面板下,我将Build Action设置为“Embedded Resource”。该文件位于我的类库项目中的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,我真的很感激帮助,
麦克
答案 0 :(得分:0)
找到它,
问题是我在资源名称中包含了'scripts',因此我有“webstation.WebControls.scripts.CollapsiblePanel.js”
我决定尝试一下,所以我有: “webstation.WebControls.CollapsiblePanel.js”
这就是诀窍。
这有点令人困惑,因为所有文档都明确指出包括路径作为命名约定的一部分,但也许我在项目中包含一个文件夹时做错了。
麦克