asp.net - 如何将 JavaScript 直接嵌入到我的 ASP.net 自定义控件中?

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

我正在构建我的第一个用户控件,我想将控件所需的 javascript 与程序集打包在一起,以便最终用户不必担心包含依赖项。我遵循了 Scott Mitchell ( https://web.archive.org/web/20210510023046/http://aspnet.4guysfromrolla.com/articles/080906-1.aspx ) 的教程,但我似乎无法让它正常工作。

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

我创建了一个包含以下函数的 CollapsiblePanel.js 文件:

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

在属性面板下,我将构建操作设置为“嵌入资源”。该文件位于我的类库项目内的 script/目录中。我的项目的根命名空间是 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”

这样就成功了。

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

迈克

关于asp.net - 如何将 JavaScript 直接嵌入到我的 ASP.net 自定义控件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1573206/

相关文章:

c# - ASP.Net PayPal Express Checkout 调用 SetExpressCheckout 并且没有响应

javascript - Leaflet 多 geoJSON 层聚类和层控制

c# - 自定义控件覆盖命令按钮

c# - 在 ProgressBar 控件模板中为 WPF ImageBrush 设置动画

将 div 移动到另一个 div 中时,jQuery 显示/隐藏不起作用

asp.net - 限制字符串中的字符数 - XSLT

php - 如何通过本地主机在同一台 PC 上同时运行 Microsoft IIS 和 WAMP

javascript - 语法错误 : missing ; before statement jquery jsonp

javascript - 告诉 Apache 是否根据请求执行 PHP

android - startActivity 在自定义控件(RadioButton)内不起作用