在转发器内的更新面板中匹配 ID -“已包含...的定义”
我有一个问题,为什么单独中继器中的 2 个控件如果位于更新面板中则不能具有相同的 ID,但如果它们不在更新面板中则可以共享相同的 ID。请参阅此代码...
<asp:Repeater ID="rptFirstRepeater" runat="server">
<ItemTemplate>
<asp:Image runat="server" ID="imgThisWorks" />
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:Image runat="server" ID="imgThisDoesntWork" />
</ContentTemplate>
</asp:UpdatePanel>
</ItemTemplate>
</asp:Repeater>
<asp:Repeater ID="rptSecondRepeater" runat="server">
<ItemTemplate>
<asp:Image runat="server" ID="imgThisWorks" />
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:Image runat="server" ID="imgThisDoesntWork" />
</ContentTemplate>
</asp:UpdatePanel>
</ItemTemplate>
</asp:Repeater>
生成此错误:
CS0102: The type 'ASP._8_admin_testemail_aspx' already contains a definition for 'imgThisDoesntWork'
但如果您不使用更新面板,它就可以正常工作,就像这样。
<asp:Repeater ID="rptFirstRepeater" runat="server">
<ItemTemplate>
<asp:Image runat="server" ID="imgThisWorks" />
</ItemTemplate>
</asp:Repeater>
<asp:Repeater ID="rptSecondRepeater" runat="server">
<ItemTemplate>
<asp:Image runat="server" ID="imgThisWorks" />
</ItemTemplate>
</asp:Repeater>
我知道中继器中的所有控件都被赋予了新的 ID,例如...... ctl00_cttBody_ucTestControl_rptFirstRepeater_ctl00_imgThisWorks
这也不适用于更新面板吗? 我可以使用相同的 ID 使上面的代码工作吗? - 请忽略这一事实:这 2 个中继器实际上应该是一个中继器! :)
谢谢,查尔斯。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这似乎是微软决定不修复的已知错误:
http://connect.microsoft.com/VisualStudio/feedback/details/417230/updatepanel-breaks-naming-containers-compile-time-bug
It seems to be a known bug which microsoft has decided not to fix:
http://connect.microsoft.com/VisualStudio/feedback/details/417230/updatepanel-breaks-naming-containers-compile-time-bug