GridView, как применить формат строки к элементу - PullRequest
2 голосов
/ 03 августа 2010

У меня есть следующий код в разделе столбцов моего GridView:

<Columns>
      <asp:boundfield datafield="Nominal-Anual" HeaderText="Nominal anual"/>
      <asp:boundfield datafield="Anual" headertext="Anual" sortexpression="Anual" />
      <asp:boundfield datafield="Semestral" headertext="Semestral" DataFormatString="{0:0.00}" />
      <asp:BoundField DataField="Trimestral" HeaderText="Semestral" HtmlEncode="false" DataFormatString="{0:00.0000}" />
      <asp:BoundField DataField="Mensual" HeaderText="Mensual" />
</Columns>

Это представление сетки является источником данных, для которого все столбцы данных имеют строковый тип.

Моя проблема заключается в том, чтоDataFormatString не применяется, и я не знаю, почему.

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

Что может происходить?

Заранее спасибо.

С наилучшими пожеланиями.

Хосе

Ответы [ 3 ]

2 голосов
/ 03 августа 2010

Может быть, форматирование не работает, потому что оно ожидает числовые / десятичные значения и вы отправляете данные строкового типа?

1 голос
/ 03 августа 2010

Я удивлен, что вы вынуждены поместить строки в базу данных вместо даты.Кстати, чтобы изменить формат:

  1. Преобразовать BoundFields, которые вы хотите изменить, в TemplateField (это можно сделать с помощью дизайнера)
  2. Удалите <% # Bind (...)%>
  3. Обрабатывать событие RowDataBound и задавать текст вручную: ((TextBox)e.Row.FindControl("..")).Text = MyFormatter(e.Row.DataItem);
1 голос
/ 03 августа 2010

Попробуйте

<asp:boundfield datafield="Semestral" headertext="Semestral" DataFormatString="{0:0.00}" HtmlEncode="false" />

Я видел, как это происходит, потому что (и исправьте меня, если я ошибаюсь) значение поля HtmlEncoded перед применением формата, чтобы строка формата не имела эффекта.

Ответ на комментарий:

Вы можете попробовать использовать событие RowDataBound.

Событие RowDataBound возникает, когда строка данных (представленная объектом GridViewRow) связана с данными в элементе управления GridView.Это позволяет вам предоставлять метод обработки событий, который выполняет пользовательскую подпрограмму, такую ​​как изменение значений данных, привязанных к строке, всякий раз, когда происходит это событие.

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