(原创)怎么在绑定后动态改变DataGrid中的内容

在应用中,很多时候需要在绑定以后去修改DataGrid的呈现,比如
(1)当数据符合一定的条件需要修改它的呈现方式
(2)将数据库中的逻辑值(0,1)变成男女来呈现等等
大致有2种方法来实现上述操作
(1)在ItemDataBound中修改值
(2)在绑定的时候用一个函数进行过虑
同样,数据库按照 http://www.cnblogs.com/lovecherry/archive/2005/03/25/125487.html

我们来实现以下2个功能
(1)在ItemDataBound中把年龄小于30的人的一行底色修改为粉红色
代码如下
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
  {
   if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem||e.Item.ItemType==ListItemType.EditItem)
   {
    if(Convert.ToInt16(DataBinder.Eval(e.Item.DataItem,"iAge"))<30)e.Item.BackColor=Color.Pink;
   }

  }
当然需要注册事件
this.DataGrid1.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid1_ItemDataBound);
(2)把姓名为“朱晔”的人,用加重显示
前台代码
<%#DataBinder.Eval(Container.DataItem,"vName") %>
修改为
<%# myfunc(DataBinder.Eval(Container.DataItem,"vName")) %>
后台代码
protected string myfunc(object s)
  {
   string _s;
   if(s.ToString()=="朱晔")
    _s="<b>"+s.ToString()+"</b>";
   else
    _s=s.ToString();
   return _s;
  }

以上2种功能也就是我上面说的大致有2种方法来实现上述操作
就这么简单。
对于其他的一些相关扩展就不细说了
比如根据一个值来改变一些控件的属性:
如果控件是模板列中的可以通过((控件类型)e.Item.FindControl(id)).属性=值 来动态设定;
如果控件不是模板列中的可以通过((控件类型)e.Item.Controls[索引号]).属性=值 来动态设定
还比如根据一个列的值来写其他列的统计值,都一样的
在ItemDataBound事件方法中进行操作,因为这个时候数据绑定了


posted @ 2005-03-25 13:11 lovecherry 阅读(9010) 评论(26)  编辑 收藏 网摘 所属分类: webform

  回复  引用  查看    
#1楼2005-04-19 17:38 | №阿儒№      
嗯,第二个方法不错!
  回复  引用  查看    
#2楼2005-04-20 10:07 | №阿儒№      
可以加我MSN:zhongru_tu@hotmail.com

针对上面的功能我觉得有一些不足,想向你请教一下,可以吗?

  回复  引用    
#3楼2005-04-30 00:36 | lsharp
谢谢,解决了我的一个问题.
  回复  引用    
#4楼2005-05-21 09:56 | rain7818
终于按照上面的方法实现了绑定后动态改变DataGrid中的内容,太感谢了!!
  回复  引用    
#5楼2005-05-21 09:59 | rain7818
想请教一下:是不是只能对模板列才能实现这种效果,对按钮或绑定列是不行的?
  回复  引用  查看    
#6楼[楼主]2005-05-21 14:35 | lovecherry      
第一种方法同样适用
  回复  引用    
#7楼2005-08-29 16:35 | 蓝月亮[未注册用户]
第二种方法我常用
  回复  引用    
#8楼2005-08-30 11:17 | BaSaRa[未注册用户]
谢谢,解决了我的一个问题:)
针对模板列和绑定列都可以,不错不错

  回复  引用  查看    
#9楼2006-01-01 03:51 | 辉辉      
有个问题就是我现在利用第二种方法绑定了一个RadioButtonList控件,但要是想返回选中项的索引该怎么实现呀!!!
  回复  引用    
#10楼2006-03-22 16:45 | 【猎人★狼】[未注册用户]
可不可以直接在前台改呢?
请教一下`
谢谢
ghwolf_2005@163.com

  回复  引用    
#11楼2006-07-23 11:33 | 尖锐湿疣[未注册用户]
ok
  回复  引用  查看    
#12楼2006-09-20 15:49 | 平凡      
DataGrid超链接列,点击超链接列进入其子页面,显示该列详细信息,我对其中一项修改后提交,并返回到父页面,同时也让父页中DataGrid中的一个绑定列的内容按照子页面的设置相应的修改,请各位帮忙看看怎么实现。
  回复  引用    
#13楼2008-04-17 02:53 | renxiaojun[未注册用户]
xiexie



发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 125492




相关文章:

相关链接: