GridView使用技巧之:根据绑定的内容改变单元格(或者行)的显示样式
2007-06-28 12:35
826 查看
前言:在Asp.net开发的过程中我们经常会碰到这样的需求,即根据GIRDVIEW绑定的内容对特定的单元格或者行的显示样式做特殊处理.比如一个库存表,当库存小于某一值时以红色显示,表示警告等等.下面我们就以一个示例来讲解一下如何实现这样的功能.
服务器端控件GIRDVIEW解析到客户端就是HTML里面的TABLE,在HTML里面我们可以方便的设置任意单元格的显示样式,但是GRIDVIEW里面就没那么方便了,我们需通过Attributes.Add 这个方法来进行操作,
Attributes.Add(string key,string value)共两个参数,一个是key表示属性名,另一个是这个属性的值.(不清楚的朋友可以参考MSDN帮助文档)
这里我已一个高校里经常要用到的"校历---公历对照表"为例进行解说,我们的需求就是,这个对照表中当天的日期以及对应的周次做特殊显示,以让教务人员一看就明白今天是多少号,对应的是第多少周的星期几.,,好需求已明白,我们来看看效果图先,如下:
![](http://p.blog.csdn.net/images/p_blog_csdn_net/j_jake/1.jpg)
上图是我校07年上半年的"校历---公历对照表",今天是6月28日,在图上可以看出,这个日期以及对应的周次高亮度显示了.那么如何实现这样的效果呢,方法如下:
首先选种GRIDVIEW,点选属性面板里的闪电图标找到RowDataBound事件,该事件是在对行进行了数据绑定后激发,写下如下代码:
![](https://oscdn.geek-share.com/Uploads/Images/Content/2015/2015030196/6810355c2f78c12e91b7997a8e8c583a.gif)
protected void SmartGridView1_RowDataBound(object sender, GridViewRowEventArgs e)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201109/a41954a27d6ad96fa2c2cf816e677448.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201109/1327ab569c1ae82736693a50b8e33378.gif)
...{
![](https://oscdn.geek-share.com/Uploads/Images/Content/201109/6a9c071a08f1dae2d3e1c512000eef41.gif)
string today = DateTime.Now.Month + "月" + DateTime.Now.Day + "日";//获得当天的日期
![](https://oscdn.geek-share.com/Uploads/Images/Content/201109/6a9c071a08f1dae2d3e1c512000eef41.gif)
for (int i = 0; i < SmartGridView1.Rows.Count; i++)//循环GRIDVIEW每一行
![](https://oscdn.geek-share.com/Uploads/Images/Content/201104/37c8bf68cdc3cc81759c34160776bc53.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201104/7ff8d92cded7e0ce15e7ca1acc870052.gif)
...{
![](https://oscdn.geek-share.com/Uploads/Images/Content/201109/6a9c071a08f1dae2d3e1c512000eef41.gif)
for (int j = 1; j <= 7; j++)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201104/37c8bf68cdc3cc81759c34160776bc53.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201104/7ff8d92cded7e0ce15e7ca1acc870052.gif)
...{
![](https://oscdn.geek-share.com/Uploads/Images/Content/201109/6a9c071a08f1dae2d3e1c512000eef41.gif)
if (SmartGridView1.Rows[i].Cells[j].Text == today)//与当天日期进行比较,如果相等,则改变单元格的显示样式
![](https://oscdn.geek-share.com/Uploads/Images/Content/201104/37c8bf68cdc3cc81759c34160776bc53.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201104/7ff8d92cded7e0ce15e7ca1acc870052.gif)
...{
![](https://oscdn.geek-share.com/Uploads/Images/Content/201109/6a9c071a08f1dae2d3e1c512000eef41.gif)
SmartGridView1.Rows[i].Cells[j].Attributes.Add("bordercolorlight", "#000000");
![](https://oscdn.geek-share.com/Uploads/Images/Content/201109/6a9c071a08f1dae2d3e1c512000eef41.gif)
SmartGridView1.Rows[i].Cells[j].Attributes.Add("style", "background-color:#0e5c9a;color:#ffffff;font-weight:bold;border-width:2px;");//给单元格添加Style属性
![](https://oscdn.geek-share.com/Uploads/Images/Content/201109/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201109/6a9c071a08f1dae2d3e1c512000eef41.gif)
SmartGridView1.Rows[i].Cells[0].Attributes.Add("bordercolorlight", "#000000");
![](https://oscdn.geek-share.com/Uploads/Images/Content/201109/6a9c071a08f1dae2d3e1c512000eef41.gif)
SmartGridView1.Rows[i].Cells[0].Attributes.Add("style", "background-color:#0e5c9a;color:#ffffff;font-weight:bold;border-width:2px;");
![](https://oscdn.geek-share.com/Uploads/Images/Content/201104/717446ca04a6125dc5b6b54e0fa14ab4.gif)
}
![](https://oscdn.geek-share.com/Uploads/Images/Content/201104/717446ca04a6125dc5b6b54e0fa14ab4.gif)
}
![](https://oscdn.geek-share.com/Uploads/Images/Content/201104/717446ca04a6125dc5b6b54e0fa14ab4.gif)
}
![](https://oscdn.geek-share.com/Uploads/Images/Content/201109/0196c3df5ea9e936f21e9932cca91014.gif)
}
这样,我们就实现了我们要达到的效果,就这样简单.
这不是什么大技巧,只是想写在这里起到一个抛砖引玉的作用,希望对您有用!!
服务器端控件GIRDVIEW解析到客户端就是HTML里面的TABLE,在HTML里面我们可以方便的设置任意单元格的显示样式,但是GRIDVIEW里面就没那么方便了,我们需通过Attributes.Add 这个方法来进行操作,
Attributes.Add(string key,string value)共两个参数,一个是key表示属性名,另一个是这个属性的值.(不清楚的朋友可以参考MSDN帮助文档)
这里我已一个高校里经常要用到的"校历---公历对照表"为例进行解说,我们的需求就是,这个对照表中当天的日期以及对应的周次做特殊显示,以让教务人员一看就明白今天是多少号,对应的是第多少周的星期几.,,好需求已明白,我们来看看效果图先,如下:
![](http://p.blog.csdn.net/images/p_blog_csdn_net/j_jake/1.jpg)
上图是我校07年上半年的"校历---公历对照表",今天是6月28日,在图上可以看出,这个日期以及对应的周次高亮度显示了.那么如何实现这样的效果呢,方法如下:
首先选种GRIDVIEW,点选属性面板里的闪电图标找到RowDataBound事件,该事件是在对行进行了数据绑定后激发,写下如下代码:
![](https://oscdn.geek-share.com/Uploads/Images/Content/2015/2015030196/6810355c2f78c12e91b7997a8e8c583a.gif)
protected void SmartGridView1_RowDataBound(object sender, GridViewRowEventArgs e)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201109/a41954a27d6ad96fa2c2cf816e677448.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201109/1327ab569c1ae82736693a50b8e33378.gif)
...{
![](https://oscdn.geek-share.com/Uploads/Images/Content/201109/6a9c071a08f1dae2d3e1c512000eef41.gif)
string today = DateTime.Now.Month + "月" + DateTime.Now.Day + "日";//获得当天的日期
![](https://oscdn.geek-share.com/Uploads/Images/Content/201109/6a9c071a08f1dae2d3e1c512000eef41.gif)
for (int i = 0; i < SmartGridView1.Rows.Count; i++)//循环GRIDVIEW每一行
![](https://oscdn.geek-share.com/Uploads/Images/Content/201104/37c8bf68cdc3cc81759c34160776bc53.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201104/7ff8d92cded7e0ce15e7ca1acc870052.gif)
...{
![](https://oscdn.geek-share.com/Uploads/Images/Content/201109/6a9c071a08f1dae2d3e1c512000eef41.gif)
for (int j = 1; j <= 7; j++)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201104/37c8bf68cdc3cc81759c34160776bc53.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201104/7ff8d92cded7e0ce15e7ca1acc870052.gif)
...{
![](https://oscdn.geek-share.com/Uploads/Images/Content/201109/6a9c071a08f1dae2d3e1c512000eef41.gif)
if (SmartGridView1.Rows[i].Cells[j].Text == today)//与当天日期进行比较,如果相等,则改变单元格的显示样式
![](https://oscdn.geek-share.com/Uploads/Images/Content/201104/37c8bf68cdc3cc81759c34160776bc53.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201104/7ff8d92cded7e0ce15e7ca1acc870052.gif)
...{
![](https://oscdn.geek-share.com/Uploads/Images/Content/201109/6a9c071a08f1dae2d3e1c512000eef41.gif)
SmartGridView1.Rows[i].Cells[j].Attributes.Add("bordercolorlight", "#000000");
![](https://oscdn.geek-share.com/Uploads/Images/Content/201109/6a9c071a08f1dae2d3e1c512000eef41.gif)
SmartGridView1.Rows[i].Cells[j].Attributes.Add("style", "background-color:#0e5c9a;color:#ffffff;font-weight:bold;border-width:2px;");//给单元格添加Style属性
![](https://oscdn.geek-share.com/Uploads/Images/Content/201109/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201109/6a9c071a08f1dae2d3e1c512000eef41.gif)
SmartGridView1.Rows[i].Cells[0].Attributes.Add("bordercolorlight", "#000000");
![](https://oscdn.geek-share.com/Uploads/Images/Content/201109/6a9c071a08f1dae2d3e1c512000eef41.gif)
SmartGridView1.Rows[i].Cells[0].Attributes.Add("style", "background-color:#0e5c9a;color:#ffffff;font-weight:bold;border-width:2px;");
![](https://oscdn.geek-share.com/Uploads/Images/Content/201104/717446ca04a6125dc5b6b54e0fa14ab4.gif)
}
![](https://oscdn.geek-share.com/Uploads/Images/Content/201104/717446ca04a6125dc5b6b54e0fa14ab4.gif)
}
![](https://oscdn.geek-share.com/Uploads/Images/Content/201104/717446ca04a6125dc5b6b54e0fa14ab4.gif)
}
![](https://oscdn.geek-share.com/Uploads/Images/Content/201109/0196c3df5ea9e936f21e9932cca91014.gif)
}
这样,我们就实现了我们要达到的效果,就这样简单.
这不是什么大技巧,只是想写在这里起到一个抛砖引玉的作用,希望对您有用!!
相关文章推荐
- GridView的技巧 绑定行事件,取得单元格值,或取得单元格控件方法,鼠标经过样式
- GridView使用技巧之:如何在RowCommand里获取模板列里绑定的内容?
- list contro控件根据单元格的内容改变显示的颜色
- gridview如何改变行显示的内容以及设置单元格的是否允许编辑
- GridView使用技巧之:如何在RowCommand里获取模板列里绑定的内容?
- Asp.net中在GridView数据绑定事件中改变显示内容要注意的问题
- wpf datagrid 单元格颜色 根据条件改变颜色 根据表datatable动态显示datagrid内容
- GridView 绑定字段根据内容为空时格式化显示
- GridView使用技巧之:如何在RowCommand里获取模板列里绑定的内容?
- 绑定gridview单元格内容过长,用tooltip,单元格截取指定长度,鼠标停留时显示全部内容,
- gridview如何改变行显示的内容以及设置单元格的是否允许编辑
- Metro之GridView控件的使用-绑定不同的模板样式显示
- GridView根据获取的值显示不同内容
- Android 根据Edittext内容动态改变Listview显示的数据
- gridview如何显示柱状图(如何使用绑定的值)
- 根据用户使用的是iphone还是ipad来设置显示内容的大小
- gridview根据值的变化改变行列样式
- 设置GridView某个单元格显示的字数,其余的使用省略号显示
- GridView使用技巧之:如何只绑定特定长度的文本?
- ASP.NET数据绑定GridView控件使用技巧