Как отформатировать отметку времени, чтобы показать дату только в виде сетки - PullRequest
12 голосов
/ 27 апреля 2011

На странице aspx я связываю метки следующим образом:

  <asp:TemplateField HeaderText="Date of Joining">
            <ItemTemplate>
                <asp:Label ID="Label6" runat="server" Text='<%# Eval("date_of_joining") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Paid Priviledge Date">
            <ItemTemplate>
                <asp:Label ID="Label8" runat="server" 
                    Text='<%# Eval("paid_priviledge_date") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>

А в коде позади я связываю вид сетки следующим образом: (указан минимальный код)

GridView1.DataSource = dt2;
GridView1.DataBind();

Но столбцы таблицы вида показывают дату примерно так:

4/12/2011 12:00:00 AM    
4/4/2011 12:00:00 AM

Подскажите, пожалуйста, как удалить часть метки времени и отобразить только часть даты.

Я знаю, каксделать это путем форматирования с использованием ToString и SubString.Но я не могу сделать это в gridview.

Ответы [ 5 ]

25 голосов
/ 27 апреля 2011

Вы можете указать строки формата для оператора eval:

Eval("date_of_joining", "{0:dd/MM/yyyy}")
11 голосов
/ 27 апреля 2011

Создайте метод FormatDate в своем коде и вызывайте его из своего вида сетки.
http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx
http://www.csharp -examples.net / строка формата даты и времени, /

Эта часть войдет в ваш код за

private object FormatDate(DateTime input)
{
    return String.Format("{0:MM/dd/yy}", input);
}

И этот бит войдет в вашу разметку

    <asp:TemplateField HeaderText="Date of Joining">
        <ItemTemplate>
            <asp:Label ID="Label6" runat="server" Text='<%# FormatDate(Eval("date_of_joining")) %>'></asp:Label>
        </ItemTemplate>
    </asp:TemplateField>
    <asp:TemplateField HeaderText="Paid Priviledge Date">
        <ItemTemplate>
            <asp:Label ID="Label8" runat="server" 
                Text='<%# FormatDate(Eval("paid_priviledge_date")) %>'></asp:Label>
        </ItemTemplate>
    </asp:TemplateField>

Это то, что я бы назвал D.R.Y. подход к проблеме. Если вам когда-либо понадобится изменить форматирование любым способом. Вы можете просто отредактировать метод code-позади, и он будет сладкой любовью ко всей разметке.

7 голосов
/ 27 апреля 2011

Используйте "{0:d}" для краткого формата даты.Попробуйте

 Text='<%# Eval("paid_priviledge_date","{0:d}") %>'

и

Text='<%# Eval("date_of_joining", "{0:d}") %>'
1 голос
/ 27 апреля 2011

Вы можете использовать DataFormatString в связанном поле, то же самое можно установить, как показано ниже:

<asp:Label ID="Label8" runat="server" Text='<%# Eval("paid_priviledge_date","{0:d}") %>'/>
0 голосов
/ 05 апреля 2017
Text='<%# (Convert.ToDateTime((Eval("date_of_joining")))).ToShortDateString() %>'

Это самый простой способ, который я обнаружил.

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