复合控件在GridView中做为模板列出现时,其子控件的ID值不唯一,百思不得其解,求解
我的复合控件继承 CompositeControl, INamingContainer。
我把这个控件做为模板列放在GridView中
在我的测试页面中,当GridView有多行时,模板列中的复合控件的子控件的ID是唯一的,是UniqueID。
最郁闷的是,在业务系统中,当GridView有多行时,模板列中的符合控件的子控件的ID是不唯一的,都是一个名字,真是郁闷啊,有谁知道是怎么回事??
------解决方案--------------------看看服务器与本地的.net framework版本是否一至?
------解决方案--------------------“模板列中的复合控件的子控件的ID是唯一的,是UniqueID”
看不懂你这话是什么意思。ID是你复合控件中设计的,怎么可能跑到模板列上去看到?在运行时,ID肯定都是一样的,但是它们在你复合控件内部,而你复合控件实现了INamingContainer,那么相同ID的子控件它的客户端html上的ID自然不同。而ClientID代表客户端id,UniqueID代表客户端name,这些都与服务器端的ID天生就不等,你说的上面那句话我看起来就是不可能发生的,除非你采取了什么非常手段将本来正确输出html中的ClientID给改错了。
“模板列中的符合控件的子控件的ID是不唯一的,都是一个名字”这我就更看不懂了,逻辑不通的呀!