【问题标题】:How do I embed javascript directly into my ASP.net Custom Control?如何将 javascript 直接嵌入到我的 ASP.net 自定义控件中?
【发布时间】:2009-10-15 15:43:54
【问题描述】:

我正在构建我的第一个用户控件,我想将控件所需的 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,我将非常感谢您的帮助,

迈克

【问题讨论】:

    标签: asp.net javascript custom-controls custom-server-controls


    【解决方案1】:

    找到了,

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

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

    这样就成功了。

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

    迈克

    【讨论】:

      猜你喜欢
      • 2011-01-26
      • 1970-01-01
      • 1970-01-01
      • 2010-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-12
      • 2015-04-23
      相关资源
      最近更新 更多