FineUI 官方论坛

标题: 【已确认】Multiple controls with the same ID [打印本页]

作者: 东方鱼    时间: 2015-8-28 15:08
标题: 【已确认】Multiple controls with the same ID
利用设计时控件创建网页时,会自动加上控件ID,如我创建一个Grid,<f:BoundField Width="66px" DataField="status" SortField="status" HeaderText="状态"  ID=“ctl33”    ColumnID="Grid1_ctl33" /><f:BoundField Width="116px" DataField="orgname" SortField="orgname" HeaderText="所属单位"    ID=“ctl34” ColumnID="Grid1_ctl34" />
这种情况下,我在进行翻页、改变每页显示条数、点按表头进行排序时,就往往会出现类似如下的错误提示:
Multiple controls with the same ID 'ctl33' were found. FindControl requires that controls have unique IDs.
但当我将上面红字部分删除后就恢复正常。原因是什么?有何其他解决方法?



作者: zy32002    时间: 2015-8-28 15:36
本帖最后由 zy32002 于 2015-8-28 15:38 编辑

设置动态id
参看:http://fineui.com/bbs/forum.php?mod=viewthread&tid=7371&extra=
服务器控件id是不能重复的

作者: 东方鱼    时间: 2015-8-28 21:13
zy32002 发表于 2015-8-28 15:36
设置动态id
参看:http://fineui.com/bbs/forum.php?mod=viewthread&tid=7371&extra=
服务器控件id是不能重 ...

我的项目是基于4.0的,原来的web.config就有设过的,如下:
<pages controlRenderingCompatibilityVersion="4.0" clientIDMode="AutoID">
只不过原来的是设成4.0而不是3.5。我改成3.5后将IIS重启,也还是会报同样的错误。

这里的 clientIDMode="AutoID" 到底是什么情况下起作用呢?
是指设计时不会自动生成ID ?还是运行时不起作用(显然这一步经我测试不行)。

我的问题就是:当用Fineui.Design.dll 进行如Grid的设计时,我点击Grid的Columns进行编辑时,程序它会自动对BoundField加上ID,这样就会出现上述所说的问题。
作者: sanshi    时间: 2015-10-16 16:53
东方鱼 发表于 2015-8-28 21:13
我的项目是基于4.0的,原来的web.config就有设过的,如下:

只不过原来的是设成4.0而不是3.5。我改成3.5 ...

删除这个 ID=“ctl33”,这个是 VS 自动增加的。

clientIDMode="AutoID" 指的是自动为层次化的控件生成层次化的ClientID,在所有控件库中,这个是必须的




欢迎光临 FineUI 官方论坛 (https://fineui.com/BBS/) Powered by Discuz! X3.4