DigitalDream

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

      在GridView的实际使用中可能会遇到这种情况,某一列使用数据绑定直接从数据库中读取数据,另一列(或几列)中的数据由有数据绑定的那列的数据决定。这就需要动态的生成GridView。
      具体的实现方法如下:
      这里假设GridView的实例为GridView1

      1.将GridView1的某列与某个数据源绑定。
      2.分析GridView1的每一行的数据,并对每行需要动态变化的列进行赋值
         下面代码假设GridView1的第1列为数据绑定的列,第2列需要动态变化

        foreach (GridViewRow grv in GridViewTe.Rows)
        
{
            
string sourcedata = grv.Cells[0].Text;
            
string targetdata = Analyze(targetdata);    //Analyze(targetdata)为自定义函数,通过源数据获取目标数据
            grv.Cell[1].Text = targetdata;            
        }

          如果需要操作列中的控件,比如根据第1列的数据设置第2列中的图片样子,代码如下

        foreach (GridViewRow grv in GridViewTe.Rows)
        
{
            
string sourcedata = grv.Cells[0].Text;
            
string MyImageUrl = GetUrl(targetdata);    //GetUrl(targetdata),通过源数据获取不同的图片路径            
            Image img1 =(Image)grv.Cells[1].Controls[1]
            img1.ImageUrl 
= MyImageUrl;
        }

      3.找一个合适的事件把包含上述代码的函数进去(当然也可以直接把代码放进去)
这个没有一定的限制,我使用的是GridView的PreRender事件,但有一点要注意,绝对不能放在Page_Load中。因为当使用的GridView控件带分页功能时,只要读第2页,上面的代码就没有作用了。

posted on 2007-03-24 18:55  zsun666  阅读(5059)  评论(0)    收藏  举报