(原创)怎么在绑定后动态改变DataGrid中的内容
2005-03-25 13:11
387 查看
在应用中,很多时候需要在绑定以后去修改DataGrid的呈现,比如
(1)当数据符合一定的条件需要修改它的呈现方式
(2)将数据库中的逻辑值(0,1)变成男女来呈现等等
大致有2种方法来实现上述操作
(1)在ItemDataBound中修改值
(2)在绑定的时候用一个函数进行过虑
同样,数据库按照 /content/3507666.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事件方法中进行操作,因为这个时候数据绑定了
(1)当数据符合一定的条件需要修改它的呈现方式
(2)将数据库中的逻辑值(0,1)变成男女来呈现等等
大致有2种方法来实现上述操作
(1)在ItemDataBound中修改值
(2)在绑定的时候用一个函数进行过虑
同样,数据库按照 /content/3507666.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事件方法中进行操作,因为这个时候数据绑定了
相关文章推荐
- 怎么在绑定后动态改变DataGrid中的内容
- 怎么在绑定后动态改变DataGrid中的内容
- 怎么在绑定后动态改变DataGrid中的内容
- 怎么在绑定后动态改变DataGrid中的内容
- 怎么动态改变链接内容
- wpf datagrid 单元格颜色 根据条件改变颜色 根据表datatable动态显示datagrid内容
- EasyUI中iframe嵌入页面,包含datagrid数据动态绑定,页面内容的高度自适应问题
- 【原创】有关Silverlight中“DataGrid中单元格动态绑定ComboBox单击时数据项莫名被清除 ”的解决方案及思路。
- 动态改变绑定后的DataGrid的列宽(测试通过)
- 动态生成advancedDataGrid并动态绑定itemRenderer改变单元格行列颜色的例子
- 在datagrid里面怎么把一列的显示的内容改变和数据库里不一样?比如:数据库里存的是1和0,而datagrid里某一列显示出来是“完成”或“未完成”。如果在datagrid里面这一列输入“完成”,则在数据库里存的是1。
- 【技术原创】如何在SilverLight/WPF中用代码给DataGrid动态组织模板内容
- 在datagrid里面怎么把一列的显示的内容改变和数据库里不一样?
- 通过 IDictionary对Silverlight DataGrid 进行动态数据绑定
- 动态添加到页面的内容怎么写他们的点击事件
- 工作问题积累(十六)动态改变网页中的内容,向网页中添加文本
- [原创]table动态改变颜色包括一个边框
- easyui的datagrid和panel如何让标题动态改变?
- 《EasyUI》——给DataGrid动态绑定表头和数据,实现表头与数据的真正解耦
- 动态创建模板列并绑定数据(GridView,Repeater,DataGrid)