我在 Windows 窗体项目中有一个 DataGridview,它通过 SqlDataAdapter 直接绑定到数据集。我有一个用户可以编辑的可编辑列,如果用户不对列进行排序,它会很好用。
如果用户对列进行排序,则底层数据源与 Datagridview 显示的内容不同步。
当用户对其进行排序时,保持网格视图和数据源同步的标准技术是什么?
谢谢!
我在 Windows 窗体项目中有一个 DataGridview,它通过 SqlDataAdapter 直接绑定到数据集。我有一个用户可以编辑的可编辑列,如果用户不对列进行排序,它会很好用。
如果用户对列进行排序,则底层数据源与 Datagridview 显示的内容不同步。
当用户对其进行排序时,保持网格视图和数据源同步的标准技术是什么?
谢谢!
根据我的理解,自动排序不适用于 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();
}
我似乎找不到触发单击标题以对 datagridview 进行排序的事件。