GridView根据值的变化改变行列样式
www.chinacs.net2005-03-18中文C#技术站
<!--
google_ad_client = "pub-2021287483230946";
google_ad_width = 120;
google_ad_height = 600;
google_ad_format = "120x600_as";
google_ad_channel ="6799761942";
google_color_border = "2880AC";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_url = "008000";
google_color_text = "000000";
//-->
我看到论坛中有询问关于如何在GridView随某行某列值的改变时(这些值是空的或不是空的或是其它某些值等),其背景色及文本颜色也随之改变。这篇文章便论述这个问题。
根据某列的值改变其样式最好的方法是在GridView的DataRowBound事件中想办法。在GridView中的行绑定数据后将立即执行DataRowBound事件。DataRowBound事件使用GridViewRowEventargs类作为事件变量。通过事件变量你能够利用GridViewRowEventArgs属性操作已经绑定数据的行。
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { GridViewRow row = e.Row; } |
Row将返回TableRow类中的一个GridViewRow对象。
绑定的Row有几种不同的类型。例如:DataRow, EmptyDataRow, Footer, Header, Pager 和 Separator。通过GridView的RowType属性可以得到当前行的行类型。RowType是一组DataControlRow枚举。
看下面的代码示例,检测GridView列出的行是否为一个标准类型的行。
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { //Do something! } } |
可以使用Row的Cells属性得到其Cells,它将返回一个TableCellCollection对象。然后通过TableCellCollection索引得到特定的Cells。TableCellcollection索引将返回一个TabelCell对象,对应于Row中的一个Cell:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { string value = e.Row.Cells[0].Text; } } |
现在你已经明白了如何得到GridView中某行某列的值,那么根据值的变化改变其样式就比较容易了。以下示例使用 Northwind 数据库,通过检测第四列(UnitPrice)的值是否大于10将其颜色改变为红色。
<%@ Page Language="C#"%> <%@ Import Namespace="System.Drawing" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<script runat="server"> protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { if (Decimal.Parse(e.Row.Cells[3].Text) > 10) e.Row.Cells[3].BackColor = Color.Red; } }
</script> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Untitled Page</title> </head> <body> <form id="form1" runat="server"> <div> <asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1" AutoGenerateColumns="False" DataKeyNames="ProductID" OnRowDataBound="GridView1_RowDataBound"> <Columns> <asp:BoundField ReadOnly="True" HeaderText="ProductID" InsertVisible="False" DataField="ProductID" SortExpression="ProductID" /> <asp:BoundField HeaderText="ProductName" DataField="ProductName" SortExpression="ProductName" /> <asp:BoundField HeaderText="QuantityPerUnit" DataField="QuantityPerUnit" SortExpression="QuantityPerUnit" /> <asp:BoundField HeaderText="UnitPrice" DataField="UnitPrice" SortExpression="UnitPrice" /> </Columns> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource1" runat="server" SelectCommand="SELECT [ProductID], [ProductName], [QuantityPerUnit], [UnitPrice] FROM [Alphabetical list of products]"
ConnectionString="<%$ ConnectionStrings:AppConnectionString1 %>" />
</div> </form> </body> </html> |
分享到:
相关推荐
GridView动态改变值,里面有下拉列表,文本框
前台gridview 设置好后,在后台代码中获得 gridview 中的值。
GridView行的背景随鼠标改变而改变 GridView行的背景随鼠标改变而改变 GridView行的背景随鼠标改变而改变
GRIDVIEW列可随意改变位置
应为需要要用代码改变GridView的样式。所以做了一个。 标题头是图片样式的。支持高亮。
自定义Gridview实现拖拉改变顺序 仿新闻频道管理
获取GridView中Checkbox的值
GridView点击时候改变图片效果,只改变上面图片,图片下面的文字背景不变。好多关于GridView的例子都是点击每一个Item的时候整个itemd 背景都改变,图片与图片下面的文字是同一个背景,都改变,研究了好久终于实现了...
一个漂亮的GridView CSS 模板样式。 测试过,可用。
可拖动、改变列宽的GridView源码可拖动、改变列宽的GridView源码 写了一个 GridView 的 htc 可以实现 鼠标移动改变颜色 移动改变列的顺序,改变列宽,排序 chy.xml为GridView数据库
zi yuan mao shu GridView的item的不同的样式
可拖动 改变列宽 GridView 源码可拖动 改变列宽 GridView 源码可拖动 改变列宽 GridView 源码
ListView嵌套GridView 并实现行列选择
任意改变GridView某一行颜色和任意单元格颜色的源代码
GridView空间中的各种使用方法,包括GridView无代码分页排序 GridView选中,编辑,取消,删除 GridView正反双向排序 ...GridView加入自动求和求平均值小计 GridView数据导入Excel/Excel数据读入GridView
最全的gridview学习资料 GridView无代码分页排序 GridView选中,编辑,取消,删除 GridView正反双向排序 GridView和下拉菜单...GridView加入自动求和求平均值小计 GridView数据导入Excel/Excel数据读入GridView
快速预览: GridView无代码分页排序 GridView选中,编辑,取消,删除 GridView正反双向排序 ...GridView加入自动求和求平均值小计 GridView数据导入Excel/Excel数据读入GridView 1.GridView无代码分页排序:
解决无法获取 GridView 隐藏列值问题,这是一个很好的例子。免费供大家下载。
C# GridView 的各种技巧 快速预览: GridView无代码分页排序 GridView选中,编辑,取消,删除 GridView正反双向排序 ...GridView加入自动求和求平均值小计 GridView数据导入Excel/Excel数据读入GridView