Привязка вывода кортежа к Gridview - PullRequest
0 голосов
/ 04 марта 2011

Я занимаюсь разработкой веб-приложения, в котором у меня есть служба WCF, которая взаимодействует с базой данных с использованием структуры сущностей. Я хочу избавиться от создания Классов для каждого запроса LINQ * 1001 например *

public class Emp
{
 public int CD{get;set;}
 public string Name{get;set;}
}


public List<Emp> GetServTypeForPromotionDue()
{
        return (from a in Context.TableName
                    select new Emp{ a.CD, a.NAME });

}

для другой таблицы и LINQ Я должен каждый раз создавать отдельный класс. Альтернативой этому является использование анонимного метода, который не является предпочтительным решением. Чтобы избежать обоих методов, я использую класс Tuple, где я возвращаю List> или List> в зависимости от типа возвращаемого значения. Это работает нормально, но проблема в том, что я связываю результат запроса LINQ напрямую с Gridview. По умолчанию Tuple имеет свойства item1, item2, .. и так далее. Итак, мой обзор показывает, что эти имена являются именами столбцов, поэтому, есть ли способ, которым я могу изменить имя свойства на CD, Name вместо Item1 Tuple, Item2 до привязки к сетке?

Ответы [ 2 ]

1 голос
/ 04 марта 2011

при связывании списка, вы можете использовать linq:

this.grid.DataSource = tupleList.Select(i => new
{
    FirstName = i.Item1,
    LastName = i.Item2,
    CD = i.Item3
});
0 голосов
/ 04 марта 2011

Вы должны изменить имена столбцов в GridView, а не кортеж.Кортеж - это легкий тип, который не поддерживает много настроек ( MSDN ).Если вы знаете, что привязываете к GridView, измените имена столбцов, обработав событие RowDataBound и проверив RowType заголовка, а затем изменив там имена столбцов.

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