Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Не работает DataFormatString / 6 сообщений из 6, страница 1 из 1
01.08.2006, 14:58
    #33892150
kon_v_palto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает DataFormatString
Создаю два одинаковых грида.
В первом для колонки price создаю BoundField с DataFormatString. Не работает.
Во втором содаю TemplateField и Label с Bind. Работает.
:crash:

        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="id" DataSourceID="SqlDataSource1">
            <Columns>
                <asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" ReadOnly="True" SortExpression="id" />
                <asp:BoundField DataField="name" HeaderText="name" SortExpression="name" />
                 <asp:BoundField DataField="price" DataFormatString="{0:C}" HeaderText="price" SortExpression="price" />
            </Columns>
        </asp:GridView>
        <asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False" DataKeyNames="id" DataSourceID="SqlDataSource1">
            <Columns>
                <asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" ReadOnly="True" SortExpression="id" />
                <asp:BoundField DataField="name" HeaderText="name" SortExpression="name" />
                <asp:TemplateField HeaderText="price" SortExpression="price">
                    <ItemTemplate>
                         <asp:Label ID="Label1" runat="server" Text='<%# Bind("price", "{0:C}") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
Результат:

id name price 
1  a    12,0300 
2  b    2,8900 
3  c    34,4000 

id name price 
1  a    12,03 $  
2  b    2,89 $  
3  c    34,40 $
P.S. Почемуто знак евро не отобтажается на rsdn.ru , вместо него квадратик, я его на $ заменил :xz:
...
Рейтинг: 0 / 0
01.08.2006, 15:15
    #33892243
C...R...a...S...H
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает DataFormatString
HTMLEncode=false----------------------------------------
Knowledge is P...O...w...E...R!
My site
...
Рейтинг: 0 / 0
01.08.2006, 15:20
    #33892265
RustM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает DataFormatString
Здравствуйте, kon_v_palto, Вы писали:

Добавь HtmlEncode=False .
По умолчанию у HtmlEncode выставлено значение в true. А вэтом случае, значение поля сначала переводится в строку, а потом уже применяется формат.
Вот декомпиляция метода, отвечающего за форматирование.

protected virtual string FormatDataValue(object  dataValue , bool encode)
{
      string text1 = string.Empty;
      if (!DataBinder.IsNull(dataValue))
      {
             string text2 = dataValue.ToString();   // здесь значение переводится в строку
            string text3 = this.DataFormatString;
            int num1 = text2.Length;
                        
            if ((num1 > 0) && encode)
            {
                  text2 = HttpUtility.HtmlEncode(text2);
            }
                        
            if ((num1 == 0) && this.ConvertEmptyStringToNull)
            {
                  return this.NullDisplayText;
            }
                        
            if (text3.Length == 0)
            {
                  return text2;
            }
                        
             if (encode)
            {
                  return string.Format(CultureInfo.CurrentCulture, text3, new object[] {  text2  });
            }
                        
            // а здесь обрабатывается оригинальное значение
            return string.Format(CultureInfo.CurrentCulture, text3, new object[] {  dataValue  });
      }
      return this.NullDisplayText;
}... << RSDN@Home 1.2.0 alpha rev. 655>>
...
Рейтинг: 0 / 0
01.08.2006, 15:25
    #33892287
kon_v_palto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает DataFormatString
Здравствуйте, C...R...a...S...H, Вы писали:

CRA>HTMLEncode=false

Помогло, спасибо, а вчем проблема, почему с HTMLEncode=true не работает.
...
Рейтинг: 0 / 0
01.08.2006, 15:28
    #33892298
kon_v_palto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает DataFormatString
Всем спасибо, разобрался.
...
Рейтинг: 0 / 0
02.08.2006, 15:49
    #33895052
mogadanez
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает DataFormatString
RM>По умолчанию у HtmlEncode выставлено значение в true. А вэтом случае, значение поля сначала переводится в строку, а потом уже применяется формат.
RM>Вот декомпиляция метода, отвечающего за форматирование.

почему на РСДН нет блюющего смайлика...

... << RSDN@Home 1.1.4 beta 6a rev. 436>>
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Не работает DataFormatString / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]