GridView中列的绑定与显示问题

       不知道大家有没有遇到过这种情况: 当GridView中既有在页面绑定的列又有动态在代码页绑定的列,一但发生PostBack 就会出现列重复的现象。如下:

a.aspx页面中的代码:

a.aspx.cs中的代码:

页面中绑定的是两列CheckBox,后台则是两列数据。运行后的效果:

图1

一切正常。但是当你点击一个复选框后:

图2

      看见了吧,其它列出现了重复,而CheckBox列却没有。

原因就在于写在页面上的两列CheckBox 在每次页面unload时去掉,在加载时自动加入;而写在后台代码中的列则会一直存在。

      估计你会想:在每次页面load时清空不就行了么。所以我们在代码中加入一段代码:

效果估计你也猜出来了:

图片

是不重复了,但PostBack后那两列没了。那两列是在Page_Load之前绑定上去的,所以一Clear()就没了。

我没想到好的解决办法,只能用最笨的办法来解决了:

每次Page_load的时候把我们之前在后台绑的列给去掉。(就这样问题还不算完!)

所以看来数据的绑定要么全放在页面要么全放在后台代码,要不然问题多多。

不知道各位是怎么处理的,静等高见。

原文地址:https://www.cnblogs.com/yjl49/p/2371984.html