2015-11-20 5 views
0

У меня есть код в моей работе, который использует ASP.net (который я никогда не касался), но мне нужно его отсортировать. Вот ListBox, что мне нужно сортировать Dscrp:Сортировка ListBox в ASP.net

foreach (InteractiveInfo template in ddlsource) 
    { 
     Product thisProduct = FindProduct(template.UProductId); 
     if (thisProduct != null) 
     { 
      ddlProducts.Items.Add(
       new ListItem(
        string.Format("{0} ({1})", thisProduct.Dscrp, thisProduct.UProductId), 
        template.UProductId.ToString(CultureInfo.InvariantCulture))); 
     } 
    } 
    ddlProducts.DataBind(); 
} 

Я нашел эту ссылку:

https://gist.github.com/chartek/1655779

поэтому я попытался добавить это в конце:

ddlProducts.Items.Sort(); 

но это просто дает мне эту ошибку:

Does not contain a definition for 'Sort'

+0

Вы уверены, что это жерех-классик? И то, что '.DataBind()' и ваш тег C# заставляют меня сомневаться в этом. – Martha

+0

@ Марта не на 100% уверена, но это не MVC. Он использует расширение aspx и aspx.cs для кода, лежащего за файлами, поэтому я думал, что он устарел. – djblois

+0

Нет, .aspx - расширение для asp.net. Классический asp просто использует расширения .asp (и не имеет понятия «код сзади»). – Martha

ответ

1

Если ваше приложение находится на .NET 3.5 или выше, взгляните на MSDN: Extension Methods.

tutorial link вы предоставили делаете использование концепции методы расширения где Sort() метода оформленная на ListItemCollection (т.е. ddlProducts.Items) типа.

Методы расширения должны быть определены внутри неэквивалентного статического класса. Поэтому в учебнике отсутствует определение класса. Вы можете попробовать:

public static class ExtensionsMethods //Notice the static class 
{ 
    public static void Sort(this ListItemCollection items) 
    { 
      //... Implement rest of logic from the tutorial 
    } 

    // Other extension methods, if required. 
} 

Надейтесь, что это вам поможет.

0

использовать что-то вроде этого его не совершенным, но обновлять его в соответствии с вашими требованиями

public static void Sort(this ListItemCollection items) 
    { 
     var itemsArray = new ListItem[items.Count]; 
     items.CopyTo(itemsArray,0); 

     Array.Sort(itemsArray, (x, y) => (string.Compare(x.Value, y.Value, StringComparison.Ordinal))); 
     items.Clear(); 
     items.AddRange(itemsArray); 

    }