Список Заказать по выпуску - PullRequest
0 голосов
/ 15 июля 2011

Я пытаюсь справиться с сортировкой gridview самостоятельно. Я не могу понять это:

protected void gvPackages_Sorting(object sender, GridViewSortEventArgs e)
    {
    List<Package> pck = new List<Package>();
    pck = Session["Packages"] as List<Package>;

    var output = (from p in pck
                  orderby p.Department
                  select p);        <-line that breaks
    // var output = pck.OrderBy(x => x.Department).ToList(); <- I've also tried this
    gvPackages.DataSource = output;
    gvPackages.DataBind();
    }

Я получаю ошибку:

Как минимум один объект должен реализовывать IComparable.

Пакет - это сущность, поэтому я не понимаю, что мне не хватает. Другие примеры, которые я нахожу в Интернете, отражают то, что я имею выше, и различные итерации этого. Что мне не хватает? Позвольте мне также сказать, что Департамент - это всего лишь одно поле для проверки его работоспособности, в окончательной версии оно будет более динамичным.

РЕДАКТИРОВАТЬ: еще раз спасибо стека, я большой дурачок.

Ответы [ 2 ]

5 голосов
/ 15 июля 2011

проблема в том, что вы пытаетесь сделать заказ по отделу, но тип отдела не знает, как его следует заказать, потому что вы не внедрили IComparable, который требует методов для определения порядка, например Orderby Dept.Name или Dept.Location, Dept.Size, кто знает?

3 голосов
/ 15 июля 2011

Независимо от типа Department, он не реализует IComparable.Вероятно, это объект / сущность / тип DataRow.

Вы хотите отсортировать по ID, имени, ..?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...