当前位置:  开发笔记 > 编程语言 > 正文

如何在GridView中实现条件格式

如何解决《如何在GridView中实现条件格式》经验,为你挑选了1个好方法。

我的aspx页面上有一个GridView,它显示由以下类定义的对象集合

public class Item
{
    public string ItemName{get; set;}
    public object ItemValue{get; set;}
}

然后在我的aspx标记中我有这样的东西


    
        
        
    

我想知道的是:
有没有办法在ItemValue字段上使用条件格式,这样如果对象持有字符串,它将返回不变的字符串,或者如果它保持DateTime,它将显示为DateTime.ToShortDateString( ).



1> Paul Rowland..:

不确定是否可以使用BoundField,但如果将其更改为TemplateField,则可以使用此链接中的格式化函数.

即类似的东西

<%# FormatDataValue(DataBinder.Eval(Container.DataItem,"ItemValue")) %>

然后在您的代码隐藏中,您可以添加受保护的函数

Protected Function FormatDataValue(val as object) As String
    'custom enter code hereformatting goes here
End Function

或者您可以在gridview的OnRowCreated事件中执行某些操作,就像在此链接中一样


此函数是基于datavalue是否为null /为double的条件格式

protected void OnRowCreated(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        DataRowView drv = e.Row.DataItem as DataRowView;
        Object ob = drv["ItemValue"];


        if (!Convert.IsDBNull(ob) )
        {
            double dVal = 0f;
             if (Double.TryParse(ob.ToString(), out dVal))
             {
                 if (dVal > 3f)
                 {
                     TableCell cell = e.Row.Cells[1];
                     cell.CssClass = "heavyrow";
                     cell.BackColor = System.Drawing.Color.Orange;
                 }
             }
        }
    }
}

推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有