ASP.Net 自定义控件在 Head 标记中呈现 JavaScript 代码?

发布于 2024-10-16 06:05:20 字数 184 浏览 1 评论 0原文

我正在创建一个自定义控件,想知道是否可以在其所在页面的 head 标签中呈现任何 JavaScript?我想我需要使用 FindControl 方法,但不确定我需要绑定到什么。我在想页面对象?让我知道我的想法是否正确或者是否还有其他选择。

我对上述想法唯一关心的是如何在 head 标签中放置一些代码时呈现所有内容?

谢谢

I am creating a custom control and was wondering if it is possible to render any JavaScript in the head tags of the page it is placed on? I am thinking I would need to use the FindControl method, but am not sure what I need to bind to. I am thinking the page object? Let me know if I am thinking in the right direction or if there is another option.

My only concern with the above mentioned idea is that how do I render all my content while placing some code in the head tags?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

初见你 2024-10-23 06:05:20
protected override void OnPreRender(EventArgs e) {
    base.OnPreRender(e);

    string includeTemplate = "<link rel='stylesheet' type='text/css' href='{0}' />\n";
    string includeLocation = Page.ClientScript.GetWebResourceUrl(GetType(), "Path.To.Resources.css");
    LiteralControl include = new LiteralControl(String.Format(includeTemplate, includeLocation));
    Page.Header.Controls.Add(include);
}

我在我的控制库中使用它来包含 css 和 javascript 文件。

protected override void OnPreRender(EventArgs e) {
    base.OnPreRender(e);

    string includeTemplate = "<link rel='stylesheet' type='text/css' href='{0}' />\n";
    string includeLocation = Page.ClientScript.GetWebResourceUrl(GetType(), "Path.To.Resources.css");
    LiteralControl include = new LiteralControl(String.Format(includeTemplate, includeLocation));
    Page.Header.Controls.Add(include);
}

I use this in my control-library to include css and javascript-files.

娜些时光,永不杰束 2024-10-23 06:05:20

是的,如果您这样做:

this.Page.Header

这使您可以访问 head 元素,并且您可以动态地向其添加脚本标签。我想我使用了 LiteralControl 静态附加脚本标签,并且在 Load 事件中完成了它,这对我来说效果很好。我也看到了这种方法: http://forums.asp.net/t/1306647.aspx

如果使用 AJAX,您还可以使用 ScriptManager.RegisterClientScriptBlock 或 RegisterClientScriptInclude 方法(Page.ClientScript 也有相同的方法),而不是在头部添加脚本,而是在正文中添加脚本。

HTH。

Yes, if you do:

this.Page.Header

this gives you access to the head element, and you can dynamically add script tags to this. I think I used a LiteralControl to append the script tag statically, and I did it in the Load event, which worked for me fine. I also saw this approach: http://forums.asp.net/t/1306647.aspx

You can also add, not to the head, but in the body, scripts using the ScriptManager.RegisterClientScriptBlock or RegisterClientScriptInclude methods alternatively, if using AJAX (Page.ClientScript has the same methods available too).

HTH.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文