2013-07-08 126 views
1

這是我的代碼中的問題部分。排序後數據綁定更新gridview

DataView view = ds.Tables[0].DefaultView; 
view.Sort = "user_id ASC, ip_address DESC; 

BalaiStatus.DataSource = view; 
BalaiStatus.DataBind(); 

>>BalaiStatus.DataBind().Sort = "ip_address ASC";<< 

BalaiStatus將處理函數BalaiStatus_RowDataBound。這段代碼是爲了消除gridview中的同一行。該代碼是: -

string lastRow = ""; 


protected void BalaiStatus_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 

    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     var thisRow = e.Row; 

     if (thisRow.Cells[0].Text == lastRow) 
     { 
      e.Row.Visible = false; 
     } 
    } 
    else { 
      DataRowView view = (DataRowView)e.Row.DataItem; 

      string login = Convert.ToString(view["ip_address"]); 
      if (login == "") 
      { 
       e.Row.Cells[2].BackColor = Color.Red;   
      } 
      else 
      {    
       Global.rowCount = Global.rowCount + 1; 

       e.Row.Cells[2].ForeColor = Color.White; 
       e.Row.Cells[2].BackColor = Color.Green; 

      } 
      Global.allCount = Global.allCount + 1; 
    } 
    lastRow = thisRow.Cells[0].Text; 
} 

所以,我需要的是,後消除相同的行,我想再次排序在GridView中更新的數據。請參閱>>代碼< < ..

任何人都請在這個問題上幫助我。欣賞你的意見或建議。感謝Siti。

回答

0

您應該在設置gridview的源之前過濾重複的行。這將允許您在綁定網格之前進行排序。

這將取決於數據集的來源ds,您是如何得到這些數據的?

的RowDataBound不應該被用來刪除/添加行表,應該做的表存儲在數據集中DS

+0

感謝您的回覆。如何在設置gridview的源代碼之前進行過濾?..有關函數或方法獲取該行的任何建議,並比較它們是否相同? – Siti

+0

我認爲一個簡單的_group_ _by_查詢應該刪除重複的行。 什麼是數據集的來源,這將有助於可以使用哪種類型的功能。 – user2427375