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

原创 2005年04月28日 16:54:00

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

www.chinacs.net  2005-03-18  中文C#技术站

  我看到论坛中有询问关于如何在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>

>>原作者:APS编绎   >>来源:天极网

GridView使用技巧之:根据绑定的内容改变单元格(或者行)的显示样式

        前言:在Asp.net开发的过程中我们经常会碰到这样的需求,即根据GIRDVIEW绑定的内容对特定的单元格或者行的显示样式做特殊处理.比如一个库存表,当库存小于某一值时以红色显示,表示...
  • j_jake
  • j_jake
  • 2007年06月28日 12:35
  • 1923

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

根据某列的值改变其样式最好的方法是在GridView的DataRowBound事件中想办法。在GridView中的行绑定数据后将立即执行DataRowBound事件。DataRowBound事件使用G...
  • yandong19861103
  • yandong19861103
  • 2008年03月11日 16:42
  • 350

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

我看到论坛中有询问关于如何在GridView随某行某列值的改变时(这些值是空的或不是空的或是其它某些值等),其背景色及文本颜色也随之改变。这篇文章便论述这个问题。        根据某列的值改变其样式...
  • zw946
  • zw946
  • 2009年09月01日 22:29
  • 253

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

我看到论坛中有询问关于如何在GridView随某行某列值的改变时(这些值是空的或不是空的或是其它某些值等),其背景色及文本颜色也随之改变。这篇文章便论述这个问题。   根据某列的值改变其样式最好的方法...
  • berwos
  • berwos
  • 2006年09月11日 21:17
  • 596

写一个根据某列数值改变GridView中某行颜色的程序

    这一阶段写一个在线Web预订系统, 在完成预订单管理这块时候碰到一个设计思想是根据预订单流转的具体流程在gridview中改变相应颜色的内容,这时候正好碰到www.yesky.com上asp....
  • orichisonic
  • orichisonic
  • 2007年04月30日 14:40
  • 5152

根据条件动态改变GridView某行或某个单元格的背景色---vb.net

一:vb.net 动态设置该行的背景颜色 这是个gridview自带的方法(RowDataBound)    Protected Sub GvStockScheduleList_RowDataBoun...
  • lJean
  • lJean
  • 2009年06月11日 13:32
  • 2599

vue2.0 根据状态值进行样式的改变展示

用户在进行流程操作的时候,一般分为进行中,未开始,已完成,前端页面就要进行相应的状态区分展示。这里测试的是背景颜色区分。 demo: span class="contract-span" :cla...
  • yyjourney
  • yyjourney
  • 2018年01月08日 09:54
  • 85

AngularJS—通过输入的值来改变样式

先看一下效果: 本次例子实现的是让输入框底下的div,根据用户输入的值来改变颜色。 先看html代码: angular通过输入的值来改变样式 ...
  • nongweiyilady
  • nongweiyilady
  • 2016年12月10日 23:30
  • 1574

angular在通过ng-class来改变样式

ng是基于数据模型的,也就是说通过数据的改变,改变视图 要写一个ng的动画效果,可能用到ng-class,早上看了一下 网上对于ng-class的应动的博客都差不多,三种方法的使用说明 根据照写的...
  • sinat_27727437
  • sinat_27727437
  • 2016年09月29日 11:55
  • 2214

Gridview绑定数据库的字段,根据条件字段颜色改变

例题:信用卡内金额money字段被绑定到gridview中,当金额小于100显示红色大于100显示绿色 首先这种问题需要在GridView1_RowDataBound事件中处理 protec...
  • whatsyournamejack
  • whatsyournamejack
  • 2015年04月17日 20:40
  • 471
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:GridView根据值的变化改变行列样式
举报原因:
原因补充:

(最多只允许输入30个字)