我正在开发一个自定义控件,它在ascx文件中有自己的样式和脚本块。
一切正常,但如果我在我的aspx页面中使用我的控件更多一次,脚本和样式块也会重复。

如何避免这种情况?

有帮助吗?

解决方案

只要这些块在自定义控件中,你就无法删除重复,你应该考虑将它们移到另一个地方,或者通过代码添加它们。

修改:我的回答是假设您抱怨重复的链接到脚本/样式文件。但是,如果您在控件中讨论完整脚本,请参阅 _ rick_schott的回答

其他提示

脚本

您可以使用 ClientScript 对象以编程方式在Page_Load中注册脚本,而不是在aspx中编写脚本:

if (!ClientScript.IsClientScriptBlockRegistered("myScript"))
{
    ClientScript.RegisterClientScriptBlock(GetType(), "myScript", "//the javascript code...", true);
}

样式

对于样式,我不知道是否有任何机制来实现这一点。也许你可以使用主题机制。我自己没有用过,所以我不知道它是如何运作的......

我能想到的唯一方法是将自定义控件拆分为子控件。

创建一个“正文”控制作为无风格和无脚本控制。然后,创建一个“设计师”你用来吸多个“身体”的控制控制。然后你可以添加“设计师”控制到aspx页面一次。

如果你不知道有多少“身体”份"你需要在编译时,向“Designer”添加一个参数。控件,允许您动态添加“主要部分”来自运行时的代码。

顺便说一句,如果你之前从未使用过动态控件,那就玩得开心吧!

感谢所有答案。我刚刚创建了一个“助手”。控件,它创建我的样式和脚本,我只在我的aspx页面上放置一次。所以我可以在没有冗余代码的情况下添加实际控制的多个实例。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top