我正在开发一个自定义控件,它在ascx文件中有自己的样式和脚本块 一切正常,但如果我在我的aspx页面中使用我的控件更多一次,脚本和样式块也会重复。
如何避免这种情况?
答案 0 :(得分:0)
只要这些块在自定义控件中,你就无法删除重复,你应该考虑将它们移到另一个地方,或者通过代码添加它们。
修改:我的回答是假设您抱怨重复的链接到脚本/样式文件。但是,如果您在控件中讨论完整脚本,请参阅_rick_schott's answer。
答案 1 :(得分:0)
您可以使用ClientScript
对象以编程方式在Page_Load中注册脚本,而不是在aspx中编写脚本:
if (!ClientScript.IsClientScriptBlockRegistered("myScript"))
{
ClientScript.RegisterClientScriptBlock(GetType(), "myScript", "//the javascript code...", true);
}
对于样式,我不知道是否有任何机制来实现这一点。也许你可以使用主题机制。我自己没有用过,所以我不知道它是如何运作的......
答案 2 :(得分:0)
我能想到的唯一方法是将自定义控件拆分为子控件。
创建一个“Body”控件作为无样式和无脚本控件。然后,创建一个“Designer”控件,用于吸入多个“Body”控件。然后,您可以将“Designer”控件添加到aspx页面一次。
如果您不知道在编译时需要多少“Body”部分,请在“Designer”控件中添加一个参数,该控件允许您在运行时从代码中动态添加“主要部件”。
顺便说一句,如果你之前从未使用过动态控件,那就玩得开心吧!答案 3 :(得分:0)
感谢所有答案。我刚刚创建了一个“帮助器”控件来创建我的样式和脚本,我只在aspx页面上放了一次。所以我可以在没有冗余代码的情况下添加实际控制的多个实例。