2014-10-17 30 views
0

我想檢查以前的行數據,如果它等於--, 如果它不等於--然後我將使下一行按鈕來做到這一點如何獲取gridview rowdatabound中的前一行?

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     if (DataBinder.Eval(e.Row.DataItem, "time_start").ToString() == "--") 
     { 
      Button btn = ((Button)e.Row.FindControl("Edit_Button")); 
      btn.Enabled = false; 
     } 
    } 
} 

回答

0

一種方法是:

  • 在您的課程中創建一個字段previousRow,類型爲GridViewRow

  • GridView.DataBinding事件處理程序中將此字段初始化爲null。在任何RowDataBound事件觸發前,數據綁定開始時觸發此事件。

  • 在您的GridView.RowDataBound事件處理程序中,請執行您的處理(包括與previousRow比較),然後設置previousRow = e.Row

1

您也可以使用GridView1.Rows[e.Row.RowIndex - 1]這樣做。

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     GridViewRow prevrow = GridView1.Rows[e.Row.RowIndex - 1]; 
     if(prevrow.RowType == DataControlRowType.DataRow) 
     { 
      // Your code for manipulating prevrow 
     } 
     if (DataBinder.Eval(e.Row.DataItem, "time_start").ToString() == "--") 
     { 
      Button btn = ((Button)e.Row.FindControl("Edit_Button")); 
      btn.Enabled = false; 
     } 
    } 
} 
+0

感謝先生:))確實幫了不少 – dandy 2014-10-23 08:23:51

+0

@dandy,很高興知道工作,如果這有助於考慮標誌着這個作爲答案 - http://meta.stackexchange.com/questions/5234/how -does接受-的回答工作 – 2014-10-23 08:26:40

相關問題