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

王朝asp·作者佚名  2006-01-09
宽屏版  字体: |||超大  

在应用中,很多时候需要在绑定以后去修改DataGrid的呈现,比如

(1)当数据符合一定的条件需要修改它的呈现方式

(2)将数据库中的逻辑值(0,1)变成男女来呈现等等

大致有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事件方法中进行操作,因为这个时候数据绑定了

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有