怎么在绑定后动态改变DataGrid中的内容【转载】

mac2022-06-30  104

在应用中,很多时候需要在绑定以后去修改DataGrid的呈现,比如 1)当数据符合一定的条件需要修改它的呈现方式 2)将数据库中的逻辑值(01)变成男女来呈现等等 大致有2种方法来实现上述操作 1)在ItemDataBound中修改值 2)在绑定的时候用一个函数进行过虑 同样,数据库按照 http://blog.csdn.net/lovecherry/archive/2005/02/25/301441.aspx 我们来实现以下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事件方法中进行操作,因为这个时候数据绑定了

转载于:https://www.cnblogs.com/ProgRamMer-cSdn/archive/2008/11/13/1332440.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)