Я разрабатываю веб-страницу, в которой отображаются элементы списка, которые извлекаются из базы данных. Динамически я добавил в него некоторые элементы. Он добавляет в конец окна списка, поэтому я хочу отсортировать элемент списка после добавления элементов. Я попробовал Arraylist
для сортировки, но он не работает.Сортировка элементов списка в C#
ответ
Вы хотите сказать, что вы добавляете элементы в список через Javascript или после отправки сообщения somekind с помощью элементов управления ASP.NET?
Если вы добавляете динамически с помощью Javascript, тогда ваш ответ будет сортироваться с помощью jQuery, и если после обратной передачи с использованием ASP.NET вы должны использовать объект List, расположенный в System.Collections.Generic.
Привет, Евгений, он сказал, что использовал Arraylist для сортировки ... Поэтому я полагаю, что он делает на стороне сервера. Но теперь я сомневаюсь, у нас есть arraylist в javascript или в JQuery? –
Попробуйте следующий код:
DataTable dt = new DataTable();
dt.Columns.Add("val", Type.GetType("System.Int32"));
DataRow dr;
for (int i = 1; i <= 31; i++)
{
dr = dt.NewRow();
dr[0] = i;
dt.Rows.Add(dr);
}
dt.AcceptChanges();
DataView dv = dt.DefaultView;
dv.Sort = "val desc";
ddlDay.DataTextField = "val";
ddlDay.DataValueField = "val";
ddlDay.DataSource = dv.ToTable();
ddlDay.DataBind();
Если ур связывания ListBox, установив источник данных как DataTable заполняется БД данных, то, если вы хотите добавить новый элемент вместо добавления элемента добавить запись к DataTable , Затем создайте DataView для этого DataTable, сортировать данные в DataView, как показано ниже:
DataView dv = dt.DefaultView;
dv.Sort = "val desc";
затем установите источник данных из выпадающего списка, как dv.ToTable()
Я не могу понять, что вы сделали здесь – Sakthivel
Вы должны сортировать DataTable перед назначением в качестве источника данных в списке ,
DataTable.DefaultView.sort = "[Column Name]".
Как вы упомянули, вы используете метод Add для добавления ListItems в List, метод Add всегда добавляет ListItems. Вы можете добавить элементы по желаемому индексу, используя метод Insert с индексом. List.Insert (ListItem, индекс)
Приветствия
Попробуйте этот код в PreRender
случае вашей ListBox
.
System.Collections.SortedList sorted = new SortedList();
foreach (ListItem ll in ListBox1.Items)
{
sorted.Add(ll.Text, ll.Value);
}
ListBox1.Items.Clear();
foreach (String key in sorted.Keys)
{
ListBox1.Items.Add(new ListItem(key, sorted[key].ToString()));
}
Вы легенда! Остановил, что я трачу на 4 часа больше, чем мне нужно! – Fandango68
Просто позвоните ArrayList.Sort. Пример кода в ссылке.
Я знаю, этот вопрос довольно старый, но я смотрел на способе сделать это без классов компаратора ArrayLists и т.д. Так что я думал, что наклеить метод я использовал для других:
Обратите внимание что мой метод использует LINQ to Objects, поэтому он будет работать только в более новых версиях Framework.
// get a LINQ-enabled list of the list items
List<ListItem> list = new List<ListItem>(ListBoxToSort.Items.Cast<ListItem>());
// use LINQ to Objects to order the items as required
list = list.OrderBy(li => li.Text).ToList<ListItem>();
// remove the unordered items from the listbox, so we don't get duplicates
ListBoxToSort.Items.Clear();
// now add back our sorted items
ListBoxToSort.Items.AddRange(list.ToArray<ListItem>());
Как это работает в VB.NET? И ваш код не уничтожает все значения, как в этом примере: http://www.devcurry.com/2009/07/sort-items-in-aspnet-dropdownlist-using.html Спасибо! – Flo
Нет, в первой строке, где я прочитал объекты ListItem, я сохраняю ссылку на них в переменной «list». Поэтому, когда список очищается, те же самые элементы снова добавляются обратно, в другом порядке. Мой VB.NET очень ржавый, но, видя, как я использую синтаксис метода LINQ, я бы подумал, что вы можете сделать одни и те же вызовы аналогичным образом. Просто не забудьте включить (импортировать) библиотеку System.Linq. –
Бесполезно, кроме VS2010 и далее – Fandango68
Вот VB код Private Sub список сортировки (ByVal фунтов Как DropDownList) 'получить LINQ с поддержкой списка элементов списка список Dim As New List (Of ListItem) (lb.Items.Cast (Of ListItem)()) 'использует LINQ to Objects для упорядочивания элементов по мере необходимости list = list.OrderBy (Function (li) li.Text) .ToList() ' удаляет неупорядоченные элементы из списка, поэтому мы не получайте дубликаты lb.Items.Clear() 'сейчас добавьте назад наши отсортированные элементы lb.Items.AddRange (list.ToArray()) End Sub
Я знаю, что это очень похоже на ответ The King, но так оно и было для меня.
System.Collections.SortedList sorted = new System.Collections.SortedList();
foreach (ListItem ll in ListInQuestion.Items)
{
sorted.Add(ll.Value, ll.Text);//yes, first value, then text
}
ListInQuestion.Items.Clear();
foreach (String key in sorted.Keys)
{
ListInQuestion.Items.Add(new ListItem(sorted[key].ToString(), key));// <-- look here!
}
Надеюсь, это сработает для кого-то еще.
- 1. Сортировка элементов списка
- 2. Сортировка списка несравнимых элементов
- 3. Jquery Сортировка элементов списка
- 4. Сортировка элементов списка по характеристикам этих элементов
- 5. Сортировка элементов списка неупорядоченного списка в Chrome
- 6. C#: Сортировка списка массива
- 7. Сортировка списка C#
- 8. Сортировка списка в C#
- 9. Сортировка списка в C#
- 10. Сортировка списка элементов пользовательского класса в R?
- 11. Сортировка элементов списка (последний первый)
- 12. Сортировка списка элементов по алфавиту
- 13. Сортировка двойного списка в c
- 14. Групповая сортировка элементов списка JQuery
- 15. C# Сортировка/сравнение элементов
- 16. Сортировка элементов списка [полный путь] по имени файла в C#
- 17. Сортировка связанного списка в C (Сортировка выбора)
- 18. Сортировка элементов в Listview C#
- 19. Сортировка элементов в порядке списка по атрибутам
- 20. Сортировка элементов по элементу списка в python
- 21. Сортировка списка только два элементов в прологе
- 22. Сортировка списка элементов в дате по возрастанию
- 23. Сортировка пользовательского списка C#
- 24. Сортировка списка (Win32/C++)
- 25. C# Сортировка связанного списка
- 26. Сортировка списка точек C#
- 27. Сортировка списка объектов в C#
- 28. Сортировка списка объектов в C#
- 29. Сортировка общего списка в C#
- 30. Сортировка списка телефонов в C#
Было бы более удобно сортировать список ** перед добавлением элементов в список. –
Но когда я добавляю элементы, которые они добавляют, наконец. Но мне нужно это в соответствующем месте. – Sakthivel
Почему бы не вставить некоторый пример кода ... – RichardOD