反转下拉列表的默认顺序

本文关键字:默认 顺序 下拉列表 | 更新日期: 2023-09-27 18:18:09

是否有一种简单的方法来反转下拉列表的默认顺序?

if (_group.Category == GroupCategory.Workers || 
    _group.Category == GroupCategory.Acct)
{
      this.cboList.DataSource = null;
      this.cboList.DisplayMember = "DescForMCE";
      this.cboList.ValueMember = "ID";
      this.cboList.DataSource = _ch.Accounts;
      this.cboList.Visible = true;
      this.lblList.Visible = true;
}

反转下拉列表的默认顺序

可以在绑定数据源之前颠倒数据源的顺序。

if (_group.Category == GroupCategory.Workers || 
    _group.Category == GroupCategory.Acct)
{
      this.cboList.DataSource = null;
      this.cboList.DisplayMember = "DescForMCE";
      this.cboList.ValueMember = "ID";
      this.cboList.DataSource = _ch.Accounts.Reverse();
      this.cboList.Visible = true;
      this.lblList.Visible = true;
}

根据数据源集合的确切类型和。net版本,它可能不像上面的例子那么简单,上面的例子假设数据源实现了IEnumerable<T>,并且可以直接使用Reverse()扩展方法[MSDN]

如果您只有IEnumerable(非通用版本),例如,您仍然可以使用Cast<T>() [MSDN]:

完成两次调用。
collection.Cast<YourType>().Reverse();

或者您的集合类可能有自己的Reverse()实现,如List<T> [MSDN]Array [MSDN]

正如其他朋友建议的那样,最好按降序获取数据,然后简单地将其绑定到您可能希望的任何控件。下面是一个存储过程加上一个LINQ查询,它提供了您需要的数据:

Linq查询:

var queru = new DatabaseContext().Cities.OrderByDescending(s => s.CityID).ToList();

和SP:

SELECT * FROM Roles
ORDER BY RoleID DESC

希望有帮助,

你可以在把你的数据源放到你的下拉列表中之前,让你使用的数据反向。

使用.Reverse。