如何将两个不同的CheckBoxLists中的项目按字母顺序排列?

时间:2010-03-19 18:35:30

标签: c# checkboxlist alphabetized

我有两个复选框(推荐和其他),它们具有人名(连接,即John Smith是一个项目)。我想将每个列表的选定成员按字母顺序排列为一个。我怎么能这样做?

3 个答案:

答案 0 :(得分:1)

具有三个checkboxlist控件的ASP.NET实现(chkRecommended,chkOthers,chkCombined)

var listItems = (from ListItem listItem in chkRecommended.Items
                 where listItem.Selected
                 select listItem)
                .Union(from ListItem listItem in chkOthers.Items
                       where listItem.Selected
                       select listItem)
                .OrderBy(listItem => listItem.Text);

chkCombined.Items.Clear();
foreach (ListItem listItem in listItems)
    chkCombined.Items.Add(listItem);

如果你只是想要一个值列表而不是另一个控件,你可以修改我提供的原始查询或像这样扩展它

var listValues = listItems.Select(listItem => listItem.Value);

答案 1 :(得分:0)

您可以将两者的选定成员放入字符串列表并排序,然后将字符串列表放入新的CheckBoxList中。

有关MSDN列表(T).Sort方法示例,请参阅http://msdn.microsoft.com/en-us/library/b0zbh7b6.aspx

答案 2 :(得分:0)

如果你是从SqlDataSource中获取它们,为什么不通过SQL进行字母顺序排列呢?