gpt4 book ai didi

C# winforms gridview 以编程方式绑定(bind)数据后排序

转载 作者:太空宇宙 更新时间:2023-11-03 16:00:58 26 4
gpt4 key购买 nike

http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.columnheadermouseclick(v=vs.110).aspx

private void dataGridView1_ColumnHeaderMouseClick(
object sender, DataGridViewCellMouseEventArgs e)
{
...
// Sort the selected column.
dataGridView1.Sort(newColumn, direction);
newColumn.HeaderCell.SortGlyphDirection =
direction == ListSortDirection.Ascending ?
SortOrder.Ascending : SortOrder.Descending;
}

public CustomersListWrapper(DataGridView gridView)
{
_gridView = gridView;
_gridView.CellClick += dgwCustomersList_CellContentClick;
_gridView.ColumnHeaderMouseClick += dgwCustomersList_ColumnHeaderMouseClick;

ClearGrid();
SetCustomersListHeader();
....

}

private void ClearGrid()
{
_gridView.Rows.Clear();
_gridView.Columns.Clear();
}

private void SetCustomersListHeader()
{
_gridView.Columns.Add(DataGridViewColumnNames.Customers.ID, "Id");
_gridView.Columns.Add(DataGridViewColumnNames.Customers.NAME, "Ime");
_gridView.Columns[1].Width = 360;
_gridView.Columns.Add(DataGridViewColumnNames.Customers.SURNAME, "Priimek");
_gridView.Columns[2].Width = 360;
_gridView.Columns.Add(DataGridViewColumnNames.Customers.ACCOUNT_NUMBER, "Št. računa");
_gridView.Columns[3].Width = 120;
_gridView.Columns.Add(DataGridViewColumnNames.Customers.CUSTOMER_NUMBER, "Št. stranke");
_gridView.Columns[4].Width = 120;

int nLastColumn = _gridView.Columns.Count - 1;
for (int i = 0; i < _gridView.Columns.Count; i++)
{
if (nLastColumn == i)
{
_gridView.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
}
}
...
}

但问题是排序不起作用,它总是升序。每次新数据动态绑定(bind)到网格时,我都会重新设置网格排序,

newColumn.HeaderCell.SortGlyphDirection

具有正确的值,但绑定(bind)数据后数据丢失并且 SortGlyphDirection 再次为 None。

我能以某种方式记住绑定(bind)后 gridview 的 Column 的值吗?

最佳答案

我想您是从 DataTable 绑定(bind)数据源吧?更改数据源会重置之前的排序,我认为有更多方法可以处理此问题:

- 将上次使用的排序顺序存储在变量中,并使用 DataGridView.DataSourceChanged 或 DataGridView.DataBindingComplete 事件对新数据源进行排序并刷新网格

- 存储上次使用的排序顺序,并在附加新数据源之前将源数据表排序为 DataGridView 中使用的排序顺序,并在此之后更改数据源

关于C# winforms gridview 以编程方式绑定(bind)数据后排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21424706/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com