博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
获取GridView TemplateField的数据
阅读量:6720 次
发布时间:2019-06-25

本文共 3592 字,大约阅读时间需要 11 分钟。

此博文是教你怎样去获取GridView TemplateField的数据。GridView TemplateField如下写法,没有其它附加控件如Label或Literal等显示字段值

<
asp:TemplateField 
HeaderText
="Price"
>
     
<
ItemTemplate
>
           
<%
Eval
(
"
Price
"
%>
     
</
ItemTemplate
>
</
asp:TemplateField
>

 

要求是Price低于1000元的显示绿色,大于等于1000元以及小于等2000元的显示蓝色,大于2000元显示红色。

网页运行效果:

 

源代码,

ExpandedBlockStart.gif
Monitors.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
///
 
<summary>
///
 Summary description for Monitors
///
 
</summary>
namespace Insus.NET
{
    
public 
class Monitors
    {
        
private 
string _Brand;
        
private 
string _Model;
        
private 
decimal _Price;
        
public 
string Brand
        {
            
get { 
return _Brand; }
            
set { _Brand = value; }
        }
        
public 
string Model
        {
            
get { 
return _Model; }
            
set { _Model = value; }
        }
        
public 
decimal Price
      {
            
get { 
return _Price; }
            
set { _Price = value; }
        }
        
public Monitors(
string brand,
string model, 
decimal price)
        {
            
this._Brand = brand;
            
this._Model = model;
            
this._Price = price;
        }
    }
}

 

Default.aspx:

ExpandedBlockStart.gif
Default.aspx
<%
@ Page Language
=
"
C#
"
 AutoEventWireup
=
"
true
"
 CodeFile
=
"
Default.aspx.cs
"
 Inherits
=
"
_Default
"
 
%>
<!
DOCTYPE html
>
<
html 
xmlns
="http://www.w3.org/1999/xhtml"
>
<
head 
runat
="server"
>
    
<
title
></
title
>
</
head
>
<
body
>
    
<
form 
id
="form1"
 runat
="server"
>
        
<
div
>
            
<
asp:GridView 
ID
="GridViewMonitor"
 runat
="server"
 AutoGenerateColumns
="false"
 Width
="35%"
 OnRowDataBound
="GridViewMonitor_RowDataBound"
>
                
<
Columns
>
                    
<
asp:TemplateField 
HeaderText
="Brand"
>
                        
<
ItemTemplate
>
                            
<%
Eval
(
"
Brand
"
%>
                        
</
ItemTemplate
>
                    
</
asp:TemplateField
>
                    
<
asp:TemplateField 
HeaderText
="Model"
>
                        
<
ItemTemplate
>
                            
<%
Eval
(
"
Model
"
%>
                        
</
ItemTemplate
>
                    
</
asp:TemplateField
>
                    
<
asp:TemplateField 
HeaderText
="Price"
>                       
                        
<
ItemTemplate
>
                            
<%
Eval
(
"
Price
"
%>
                        
</
ItemTemplate
>
                    
</
asp:TemplateField
>
                
</
Columns
>
            
</
asp:GridView
>
        
</
div
>
    
</
form
>
</
body
>
</
html
>

 

Default.aspx.cs:

ExpandedBlockStart.gif
Default.aspx.cs
using System;
using System.Collections.Generic;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Insus.NET;
public 
partial 
class _Default : System.Web.UI.Page
{
    
protected 
void Page_Load(
object sender, EventArgs e)
    {
        
if (!IsPostBack)
            Data_Binding();
    }
    
private 
void Data_Binding()
    {
        List<Monitors> m = 
new List<Monitors>();
        m.Add(
new Monitors(
"
三星
"
"
S19A330BW
", 859m));
        m.Add(
new Monitors(
"
AOC
"
"
e2343F
", 1020m));
        m.Add(
new Monitors(
"
戴尔
"
"
U2412M
", 2070m));
        m.Add(
new Monitors(
"
飞利浦
"
"
227E3QPHSU/93
", 1099m));
        m.Add(
new Monitors(
"
苹果
"
"
MC007
", 8600m));
        m.Add(
new Monitors(
"
LG
"
"
E2242C-BN
", 899m));
        m.Add(
new Monitors(
"
明基
"
"
VW2420H
", 1699m));
        m.Add(
new Monitors(
"
优派
"
"
VX2370S-LED
", 1190m));
        
this.GridViewMonitor.DataSource = m;
        
this.GridViewMonitor.DataBind();
    }
    
protected 
void GridViewMonitor_RowDataBound(
object sender, GridViewRowEventArgs e)
    {
        
//
获取列索引,并存入ViewState
        
if (e.Row.RowType == DataControlRowType.Header)
            
for (
int i = 
0; i < e.Row.Cells.Count; i++)
            {
                
if (e.Row.Cells[i].Text.Replace (
"\r\n","").Trim() == 
"
Price
")
                {
                    ViewState[
"
cellIndex
"] = i;
                    
break;
                }
            }
        
//
如果不是DataRow,将不执行
        
if (e.Row.RowType != DataControlRowType.DataRow) 
return;
        
//
获取行记录的价格
        
decimal price = Convert.ToDecimal(((Monitors)e.Row.DataItem).Price);
        
//
默认价格为显示蓝色(大于等于1000或者小于等于2000)
        SetForeColor(e, 
"
blue
");
        
//
价格小于1000显示为绿色
        
if (price < 1000m)
            SetForeColor(e, 
"
green
");
        
//
价格大于2000显示为红色
        
if (price > 2000m)
            SetForeColor(e, 
"
red
");
    }
    
//
设置价格前景色
    
private 
void SetForeColor(GridViewRowEventArgs e, 
string color)
    {
        e.Row.Cells[(
int)ViewState[
"
cellIndex
"]].ForeColor = Color.FromName(color);
    }
}

 

 

转载地址:http://iwjmo.baihongyu.com/

你可能感兴趣的文章
aspnet_Users中LastActiveDate的问题
查看>>
考察数据科学家支持向量机(SVM)知识的25道题,快来测测吧
查看>>
微服务架构崛起 能否成为下一代云计算?
查看>>
如何知道该不该接受创业公司的工作?
查看>>
移动web性能优化从入门到进阶
查看>>
10年感触:架构是什么?——消灭架构!
查看>>
js条件语句的优化
查看>>
加快机器人产业发展 建设机械制造业强国 ——中机联会长王瑞祥在
查看>>
CSS_之绝对相对定位
查看>>
C#反序列化到类的源码演示
查看>>
Searching with Deep Learning 深度学习的搜索应用
查看>>
html的行内元素和块级元素总结
查看>>
RN 踩坑合集
查看>>
聊聊Elasticsearch的EvictingQueue
查看>>
KVC/KVO的内部实现
查看>>
成为一个Java的架构师要学习哪些知识?
查看>>
[ReactNative] CodePush接入流程
查看>>
Html5 结构特点
查看>>
JVM中的线程行为
查看>>
深圳APP开发智能家居APP
查看>>