安大互联
财经热点 > Asp编程 > 如何在绑定后动态改变DataGrid中的内容
如何在绑定后动态改变DataGrid中的内容
浏览次数:【743】  发布日期:2009-8-13 12:09:22    文章分类:Asp编程   
专题:】 【
 
在应用中,很多时候需要在绑定以后去更改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事件方法中进行操作,因为这个时候数据绑定了


手机扫码浏览该文章
 ● 相关资讯专题
  • 网络建设业务咨询

   TEl:13626712526