2013-07-08 88 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