GridView根据值的变化改变行列样式
这篇文章便论述关于如何在GridView随某行某列值的改变时(这些值是空的或不是空的或是其它某些值等) 其背景色及文本颜色也随之改变的问题
根据某列的值改变其样式最好的方法是在GridView的DataRowBound事件中想办法 在GridView中的行绑定数据后将立即执行DataRowBound事件 DataRowBound事件使用GridViewRowEventargs类作为事件变量 通过事件变量你能够利用GridViewRowEventArgs属性操作已经绑定数据的行
protected void GridView _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 GridView _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 GridView _RowDataBound(object sender GridViewRowEventArgs e) { if (e Row RowType == DataControlRowType DataRow) { string value = e Row Cells[ ] Text; } }
现在你已经明白了如何得到GridView中某行某列的值 那么根据值的变化改变其样式就比较容易了 以下示例使用 Northwind 数据库 通过检测第四列(UnitPrice)的值是否大于 将其颜色改变为红色
<%@ Page Language= C# %> <%@ Import Namespace= System Drawing %>
<!DOCTYPE PUBLIC //W C//DTD XHTML //EN // w /TR/x /DTD/x dtd >
<script runat= server > protected void GridView _RowDataBound(object sender GridViewRowEventArgs e) { if (e Row RowType == DataControlRowType DataRow) { if (Decimal Parse(e Row Cells[ ] Text) > ) e Row Cells[ ] BackColor = Color Red; } }
lishixinzhi/Article/program/net/201311/15589