当前位置:  开发笔记 > 编程语言 > 正文

在ASP.NET母版页中增强元素的元素

如何解决《在ASP.NET母版页中增强元素的元素》经验,为你挑选了1个好方法。

我遇到了一些问题,我已经做了一些挖掘,但努力想出一个确定的答案/修复.

基本上,我有一些javascript(由第三方创建),它为页面元素做一些whizzbang的东西,使它们看起来很漂亮.代码在单个页面上很有效(即没有主页),但是,当我尝试将效果应用到主页内的内容页面时,它不起作用.

简而言之,我有一个包含主脚本参考的母版页.所有页面都将使用该脚本,但传递给它的参数将因内容页面而异.

母版页脚本参考


正如你所看到的,我需要每个页面中的引用(因此它在master中),但我想要"MakePretty"的实际元素将根据内容而改变.

内容页面

现在,由于内容页面没有元素,我一直使用以下代码将其添加到母版页面元素:

HtmlGenericControl ctl = new HtmlGenericControl("script");
ctl.Attributes.Add("language", "javascript");
ctl.InnerHtml = @"MakePretty(""elementID"")";
Master.Page.Header.Controls.Add(ctl);

现在,这无法奏效.但是,如果我用简单的东西替换alert("HI!"),一切正常.所以代码正在添加好,它似乎并不总是执行取决于它正在做什么..

现在,做了一些挖掘,我已经了解了内容页面 Load事件是在之前引发的,这可能会产生影响,但是,我认为页面上的javascript是全部加载/运行的?

如果这是一个愚蠢的问题,请原谅我,但我仍然相对较新,使用javascript,尤其是在母版页方案中.

如何让内容页面调用主页面中引用的javascript代码?

感谢您对这些人的任何/所有帮助,您真的会帮助我解决这个问题.

笔记:

RegisterStartupScript 等似乎没有在任何级别工作..

即使在MasterPage环境中,控件ID也设置正常,并且正在按预期进行渲染.


如果有任何不清楚的道歉,我真的很累,所以如果需要请注释,如果需要重新说明/澄清.



1> John Sheehan..:

将ContentPlaceHolder放在母版页的head部分,然后在引用占位符的内容页面上添加一个asp:Content控件,并将脚本放在该控件中.您可以通过这种方式为每个页面自定义它.

此外,ID引用可能不起作用,因为当您使用母版页时,页面上的控件ID将根据容器结构自动创建.因此,不是按照预期的"elementID",而是输出"ctl00_MainContentPlaceHolder_elementID"查看源或使用firebug检查表单元素以查看输出的ID是什么.

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有