我有一个DropDownList
,列表中的项目如下:
Bedroom
Kitchen
Garden
因此,在从上面的列表中选择任何一项后,我有一个TextBox
,其中给出了一个数字。因此,根据TextBox
中给出的数字,地点数量将添加到CheckBoxList
。
例如,如果我选择“卧室”并将数字设为“3”,则CheckBoxList
项目将如下所示:
Bedroom1
Bedroom2
Bedroom3
我面临的问题是,由于可以从CheckBoxList
中删除任何随机项,因此不会对项目进行排序。例如,如果我删除“Bedroom2”,则列表项将为:
Bedroom1
Bedroom3
如果再次从DropDownList
中选择“卧室”并给出一个数字,例如“2”,则CheckBoxList
中的项目将为:
Bedroom1
Bedroom3
Bedroom1
Bedroom2
无论我选择DropDownList
中的任何项目,这都是同样的问题。
所以有人可以帮助我对这些项目的分类如何添加。它应该根据w.r.t在DropDownList
。
答案 0 :(得分:7)
试试这个
var items = CheckBoxList1.Items
.Cast<ListItem>()
.OrderBy(i=>i.Text)
.ToArray();
CheckBoxList1.Items.Clear();
CheckBoxList1.Items.AddRange(items);
答案 1 :(得分:0)
您可以在将项目添加到CheckBoxList之前将项目添加到 ArrayList 。然后排序数组列表,然后将DataSource提供给CheckBoxList和DataBind()
if(!Page.IsPostBack)
{
//Create two ArrayLists for sorting items
ArrayList listItems1 = new ArrayList();
ArrayList listItems2 = new ArrayList();
int q1=Convert.ToInt16(TextBox1.Text);
for (int i = 1; i <= q1; i++)
{
string t1 = DroDownList1.SelectedItem.ToString().Trim();
//Add items hereusing .Add() method of ArrayList
listItems1.Add(string.Concat(t1, i));
listItems2.Add(DropDownList1.SelectedItem.Text);
}
//Sort your items using .Sort() method of ArrayList
listItems1.Sort()
listItems2.Sort()
//Bind your items to your CheckBoxLists
CheckBoxList1.DataSource = listItems1;
CheckBoxList2.DataSource = listItems2;
CheckBoxList1.DataBind();
ChackBoxList2.DataBind();
}
这是原始的link。