2016-08-31 147 views
0

我有一個gridview,以及一個日期列的MM/dd/yyyy格式。 如果日期小於當前日期,我需要在我的gridview中突出顯示行。查找日期時間列在gridview與當前日期asp.net c#

我的代碼去,

protected void grdAssignment_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     try 
     { 

      if (e.Row.RowType == DataControlRowType.DataRow) 
      { 
       string curDate = DateTime.Now.ToString("MM'/'dd'/'yyyy"); 
       if (e.Row.Cells[2].Text < Convert.ToString(curDate)) 
       { 
        //color code 
       } 
     } 
} 

Error: String was not recognized as a valid DateTime.

+0

你能格式化你的代碼更好一點嗎? – Seano666

+0

對不起,U的格式是什麼意思? – rohini

+0

嘗試'if(Convert.ToDateTime(e.Rows.Cells(2).Text) nelek

回答

1
try 
    { 
     if (e.Row.RowType == DataControlRowType.DataRow) 
     { 
      DateTime dtRow = DateTime.ParseExact(e.Row.Cells[2].Text, "MM/dd/yyyy", CultureInfo.InvariantCulture); 
      DateTime curDate = DateTime.Now; 
      int result = DateTime.Compare(dtRow, curDate); 
      if (result < 0) 
      { 
       //color code 
      } 
    } 

注:您需要添加using System.Globalization;使用CultureInfo.InvariantCulture

+0

@Abhinaya它工作嗎? –

0

試試這一個。

if (e.Row.RowType == DataControlRowType.DataRow) 
     { 
      DateTime curDate = DateTime.Now 
      if (Convert.ToDateTime(e.Row.Cells[2].Text) < curDate) 
      { 
       //color code 
      } 
    } 
+0

我也厭倦了這一點,我錯誤的轉換部分(Convert.ToDateTime(e.Row.Cells [2] .Text) – rohini

0

爲了避免錯誤,使用的TryParse

if (e.Row.RowType == DataControlRowType.DataRow) 
{ 
      DateTime dt; 
      if (DateTime.TryParse(e.Rows.Cells(2).Text, out dt)) 
      { 
       if (dt < DateTime.Now) 
       { 
        //color code 
       } 
      } 
} 
+0

抱歉,但這並不工作,以及 – rohini

相關問題