用户对列进行排序时如何同步Datagridview和数据源?

时间:2013-09-13 16:41:37

标签: asp.net sorting datagridview

我在Windows窗体项目中有一个DataGridview,它通过SqlDataAdapter直接绑定到数据集。我有一个可编辑的列,用户可以编辑,如果用户没有对列进行排序,那么该列很有用。

如果用户对列进行排序,则基础数据源与Datagridview显示的内容不同步。

当用户对其进行排序时,使gridview和datasource保持同步的标准技术是什么?

谢谢!

2 个答案:

答案 0 :(得分:0)

根据我的理解,自动排序不适用于DataGridView,为了执行排序,您需要对数据源进行排序,然后将其重新绑定到GridView,如下面的代码所示

private void Sort_DataGrid(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
{
    // Never use Queries like this always use Stored procedures
    SqlCommand myCommand = new SqlCommand("SELECT * FROM Categories", myConnection);
    myCommand.CommandType = CommandType.Text;
    SqlDataAdapter myAdapter = new SqlDataAdapter(myCommand);
    DataSet ds = new DataSet();
    myAdapter.Fill(ds, "Categories");
    DataView dv = new DataView(ds.Tables["Categories"]);
    if ((numberDiv % 2) == 0)
        dv.Sort = e.SortExpression + " " + "ASC";
    else
        dv.Sort = e.SortExpression + " " + "DESC";
    numberDiv++;
    myDataGrid.DataSource = dv;
    myDataGrid.DataBind();
}

答案 1 :(得分:0)

我似乎无法找到触发单击标题以对数据网格视图进行排序的事件。