在数据绑定之后排序更新的gridview

时间:2013-07-08 03:43:50

标签: c# asp.net visual-studio-2008

以下是我的代码中的问题部分。

 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中的更新数据进行排序。请参阅&gt;&gt;代码&lt;&lt; ..

任何人都请帮助我解决这个问题。感谢您的意见或建议。感谢Siti。

1 个答案:

答案 0 :(得分:0)

在设置gridview的源之前,您应该过滤重复的行。这将允许您在绑定网格之前进行排序。

这将取决于数据集 ds 的来源,您是如何获得此数据的?

不应该使用Rowdatabound来删除/添加到表中的行,这应该对数据集中的表存储执行 ds