GridView根据值的变化改变行列样式

 我来答
户如乐9318
2022-10-03 · TA获得超过6665个赞
知道小有建树答主
回答量:2559
采纳率:100%
帮助的人:140万
展开全部

  这篇文章便论述关于如何在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

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式