Здравствуйте, 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" />
Вроде все))) Удачи