0

我知道这个问题已经出现了无数次,但我能找到的帖子都没有能够帮助我解决这个问题。

每隔一段时间,我就会收到标题中的错误:Multiple controls with the same ID 'ctl35' were found. FindControl requires that controls have unique IDs.这肯定不会一直发生,似乎只是刷新几次就会导致错误消失。

我的页面基本上有一个UpdatePanel和,用户用于输入与订单部分相对应的数据。由于可以有多个部分,因此有一个按钮可以创建一个新的Panel,创建输入字段并将其添加到 中Panel,然后将其添加到UpdatePanel. 用户可以多次点击该按钮添加多个entry Panel。为了做到这一点,我维护了一个,每次用户想要一个新的输入字段时List<Panel>,我都会添加新的。Panel当页面收到回发(来自添加按钮)时,然后我遍历 List 并将每个重新添加PanelUpdatePanel,它设法保留现有的条目面板。

由于这些字段是动态更新的,因此我确保将要从中检索数据的字段的 ID 设置为唯一且可相互区分的字段。但是,如前所述,我偶尔会遇到有关使用 ASP.NET 自动生成的 ID(ctl35在本例中)查找多个控件的问题。一旦我收到此错误,在 Chrome 中查看呈现的 HTML,根本没有控件具有ctl35其 ID。此外,呈现的 HTML 甚至都不包含任何 ID 以自动生成的“ctlXX”结尾的元素。因此,我无法理解可能的命名冲突问题会出现在哪里。这个错误在大多数情况下都不会发生,这也是造成混乱的主要原因。

关于这个问题可能是什么的任何想法,或者我可能需要做什么才能解决这个问题?

4

1 回答 1

1

确保将 ID 分配给所有动态创建的控件,而不仅仅是那些需要从中获取数据的控件。我已经看到在添加的控件上使用默认 ID 时会发生这种情况。

于 2012-07-17T03:35:31.903 回答