1. 程式人生 > >關於資料繫結的時候判斷Repeater中資料改變其整行顏色

關於資料繫結的時候判斷Repeater中資料改變其整行顏色

PagedDataSource版

protected void rpInCome_ItemDataBound(object sender, RepeaterItemEventArgs e)
 {

      if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem)
            {
                Repeater rpInCome = (Repeater)sender;
                try
                {
                    PagedDataSource pds = (PagedDataSource)rpInCome.DataSource;
                    if (pds.Count == 0)
                        return;

                    IEnumerator enumrator = pds.DataSource.GetEnumerator();
                    int ncount = 0;
                    while (enumrator.MoveNext() && ncount != e.Item.ItemIndex)
                        ncount++;

                    DataRowView dr = (DataRowView)enumrator.Current;

                    double dValue = dr["CurrentEarn"] == DBNull.Value ? 0 : Convert.ToDouble(dr["CurrentEarn"].ToString());
                    HtmlControl c = (HtmlControl)e.Item.FindControl("row");
                    if (dValue < 0)
                    {
                        c.Attributes["class"] = "green";
                    }
                    else if(dValue>0)
                    {
                        c.Attributes["class"] = "red";
                    }
                }
                catch (Exception ex)
                {
                    //
                }
        }
}
//Datatable版
protected void rpInCome_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem)
            {
                Repeater rpInCome = (Repeater)sender;
                try
                {
                    DataTable dt = (DataTable)rpInCome.DataSource;
                    if (dt.Rows.Count == 0)
                        return;
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        double dValue = dt.Rows[i]["CurrentEarn"] == DBNull.Value ? 0 : Convert.ToDouble(dt.Rows[i]["CurrentEarn"].ToString());
                        HtmlControl c = (HtmlControl)e.Item.FindControl("row");
                        if (dValue < 0)
                        {
                            c.Attributes["class"] = "green";
                        }
                        else if (dValue > 0)
                        {
                            c.Attributes["class"] = "red";
                        }
                    }
                }
                catch (Exception ex)
                {
                    //
                }
            }
        }