ListItemCollection Sorting 방법
허무하다 싶을 정도로 간단하다 *_*;;
오랜만에 쓰는 포스팅.. ㅋ
// Ascending ddlFirstClockSetting.DataSource = ddlFirstClockSetting.Items.Cast<ListItem>().OrderBy(o => o.Text).ToList(); ddlFirstClockSetting.DataBind(); // Descending ddlFirstClockSetting.DataSource = ddlFirstClockSetting.Items.Cast<ListItem>().OrderByDescending(o => o.Text).ToList(); ddlFirstClockSetting.DataBind();
날로 먹는 포스팅 ㅡ.ㅡ;;
여기서 중요한 것은
using System.Linq;
헌데 결정적인 문제가 있습니다.
바로 Value에 대해서는 처리가 안됩니다.
Value가 있는 경우에는 Value Data가 삭제 됩니다.
위의 Linq 처리 방식은 이게 문제점입니다. *_*;;;;;;;;
for문을 돌면서 Sorting을 해 줘야 Value 까지 다 잘 살아 있습니다.
코드는 아래와 같습니다.
#region SortDropDownList ////// method to sort a DropDownList /// /// DropDownList to sort public void SortDropDownList(DropDownList ddl) { ListItem[] sorted = new ListItem[ddl.Items.Count]; for (int i = 0; i < sorted.Length; i++) { Array.Resize(ref sorted, i); sorted[i] = ddl.Items[i]; } Array.Sort(sorted); ddl.Items.Clear(); ddl.Items.AddRange(sorted); } #endregion
이상 입니다.
감사합니다.
'CSharp > Development' 카테고리의 다른 글
XDocument Xsl Transform 샘플 (0) | 2012.10.23 |
---|---|
C# 금주의 시작일과 끝일 가져오기 (0) | 2011.08.03 |
reading Excel Open XML is ignoring blank cells (1) | 2011.05.12 |
Reading dates from OpenXml Excel files (0) | 2011.05.12 |
.NET Framework 버전 별 새로운 기능 (0) | 2011.03.23 |