Re: Подскажите новичку. GridView
От: progproger Грузия  
Дата: 19.01.11 13:13
Оценка: 3 (1)
Здравствуйте, Mazenrab, Вы писали:

M>Добрый день.


M>У меня есть GridView привязаный через ObjectDataSource к бизнес-объекту. Бизнес-объект генерит датасет.

M>Есть пара вопросов по отображению данных в гриде.

M>1) В датасете есть например три поля, которые я отображаю. Но я бы хотел их отображать в гриде не как три отдельных поля в три столбца , а как комбинацию полей в одном столбце. Ну для примера приходит три поля ФИО, должность, номер комнаты, а я хочу выводить это в одном столбце. Это возможно? Я пока не понял как это можно сделать.



Первым делом в propeties-ах у GridView запишите AutoGenerateColumns="false" (по default–у он true и поэтому отображает все столбцы таблицы...)
дальше
<Columns>
<asp:TemplateField HeaderText="ФИО">
<ItemTemplate>
сюда впишите конрол (например Label , если вы больше ничего не собираетесь с ним делать) и присоедените соответствующее поле ( напр runat="Server" Text='<%# Bind("Firstname") %>' ) Учтите,для каждого контрола отдельный ItemTemlate!
</ItemTemplate>
</asp:TemplateField>
</Columns>



M>2) Есть поле телефон. Ко мне оно приходит как строка. Например: "84959999999". Можно натравить форматирование каким-то хитрым образом на строку или что-то еще вытворить чтобы на выходе в гриде поиметь формат вида 8-(495)-999-99-99 ? Как такое проделать с int полем я представляю, а вот со строкой нет.



Как только сделаете первый пункт впишите в тег <Columns> (но не в TemplateField!!!)
<asp:BoundField DataField="Phone" HeaderText="Phone" ReadOnly="False" DataFormatString="{0:#-(###)-###-##-##}" ApplyFormatInEditMode="True" />

Вроде все))) Удачи
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.