不知道大家有没有遇到过这种情况: 当GridView中既有在页面绑定的列又有动态在代码页绑定的列,一但发生PostBack 就会出现列重复的现象。如下:
a.aspx页面中的代码:
a.aspx.cs中的代码:
页面中绑定的是两列CheckBox,后台则是两列数据。运行后的效果:
一切正常。但是当你点击一个复选框后:
看见了吧,其它列出现了重复,而CheckBox列却没有。
原因就在于写在页面上的两列CheckBox 在每次页面unload时去掉,在加载时自动加入;而写在后台代码中的列则会一直存在。
估计你会想:在每次页面load时清空不就行了么。所以我们在代码中加入一段代码:
效果估计你也猜出来了:
是不重复了,但PostBack后那两列没了。那两列是在Page_Load之前绑定上去的,所以一Clear()就没了。
我没想到好的解决办法,只能用最笨的办法来解决了:
每次Page_load的时候把我们之前在后台绑的列给去掉。(就这样问题还不算完!)
所以看来数据的绑定要么全放在页面要么全放在后台代码,要不然问题多多。
不知道各位是怎么处理的,静等高见。