2014-10-15 7 views
0

Я вытаскиваю имя и фамилию из таблицы SQL, запуская ее через datatable и привязывая подлежащую привязке к gridview. Вместо того, чтобы иметь два разных столбца в моем gridview, я хотел бы поместить первое и последнее имя в один столбец. В переменной datable есть переменные «FirstName» и «LastName». Я могу сделать это в aspx-файле, используя функцию eval, однако я бы хотел обработать его в файле Codebehind.Несколько полей данных в связанном поле с использованием codebehind

Я отключил AutoGenerateColumns, я создал BoundField. Я могу добавить FirstName в поле bfield.Datafield, и он выплюнет первое имя. Или наоборот. Как я могу добавить BOTH FirstName и LastName к тому же Boundfield в коде?

BoundField bfield = new BoundField(); 
bfield.HeaderText = "Name"; 
bfield.DataField = "FirstName" + " " + "LastName"; 
gridview_viewPSC.Columns.Add(bfield); 

Это вызывает ошибку.

Я знаю, что данные проходят правильно. Я могу подключить его, и он отобразит данные.

+0

как о трогании, сообщая нам, что ошибка .. мы определенно не возражаете читателей здесь .. также посмотреть на эту ссылку для более эффективного способа делать то же самое http://stackoverflow.com/questions/9097283/display-mulitple-data-fields-in-boundfield-of-gridview – MethodMan

+0

System.Web.HttpException: поле или свойство с именем «FirstNameLastName» было не найден на выбранном источнике данных –

+0

Я действительно смотрел эту ссылку раньше, но я хотел сделать это в Co deBehind. Не страница aspx .... –

ответ

0

Просто FYI ответ после того, как ваш DataTable загружается с данными, создать новый DataColumn. В моем примере dt загружается столбцами «FirstName» и «LastName».

DataTable dt = new DataTable(); 
dt.Load(cmd.ExecuteReader()); 

DataColumn dcFullName = new DataColumn("FullName"); 
dcFullName.Expression = string.Format("{0}+' '+{1}", "FirstName", "LastName"); 
dt.Columns.Add(dcFullName); 

gridview_viewPSC.DataSource = dt; 

Затем в BoundField

BoundField bfield = new BoundField(); 
bfield.HeaderText = "Name"; 
bfield.DataField = "FullName"; 
gridview_viewPSC.Columns.Add(bfield);