繁体   English   中英

在同一页面/表单.net上多次使用自定义控件

[英]Using a custom control more than once on the same page / form .net

我已经建立了一段时间的自定义控件并克服了许多障碍。 我尚未解决的一个挑战是能够在同一页面上多次使用自定义控件。

我有一个自定义控件,它可以自行运行,但当两个相同的控件放在页面上时,第二个控件可以控制第一个控件。 我的猜测是第一个(控件)是第一个对象,第二个是同一个对象。 如何在代码中确保如果我在页面上多次使用相同的控件,它将表现为两个单独的控件。 是否有任何具体的事情我应该注意,以确保它允许它不止一次在页面上。

提前致谢。

添加控件的多个实例时,请确保为它们指定不同的ID。 然后在编写将与它们交互的任何代码时,请通过该ID引用它们。

<%@ Register Src="controls/myControl.ascx" TagName="myControl" TagPrefix="uc1" %>

<asp:Content ID="Content1" ContentPlaceHolderID="MainPlaceHolder" runat="server">
    <uc1:myControl ID="ctlFirst" runat="server">
    <uc1:myControl ID="ctlSecond" runat="server">
</asp:Content>

然后在代码背后:

ctlFirst.SomeProperty = true;
ctlSecond.SomeProperty = false;

将自定义控件的几个实例放在ASPX页面上,然后查看HTML源代码并查看在每个控件实例上生成的所有元素ID。 ASP.NET将自动修改控件子级的ID,并在其前面加上父控件的ID。 如果您要输出原始HTML,则可能不会发生这种情况。 如果有任何重复的ID,那么这可能是您的问题的原因,特别是如果您使用客户端逻辑来操纵页面上的控件。

此外,请确保您没有在控件中使用任何会话或应用程序变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM