Преобразование даты и времени в формат даты только в формате asp.net - PullRequest
0 голосов
/ 26 февраля 2019

Я пытаюсь отобразить таблицу сервера SQL в asp.net gridview.В базе данных сервера SQL имеется много таблиц, и пользователь выбирает таблицу, и эта таблица должна отображаться в виде сетки.Для всех столбцов datetime в таблице sql server мне нужно отображать только даты.

Я прочитал данные с помощью SQLDataReader и загрузил данные в таблицу данных.Если ячейка имеет тип даты, то я пытаюсь преобразовать ее в формат только даты, как показано на рисунке ниже.

enter image description here

Я устал преобразовывать дату, используя date.toString ("MM / dd / yyyy"), но не смог отредактировать ее в таблице данных.Переменная a на изображении показывает всю дату со временем.Может ли кто-нибудь помочь с необходимыми изменениями, чтобы в столбце даты отображалась только дата.

Сначала я попытался переместить значение переменной b в datatable, но не удалось, затем я попытался снова преобразовать его в дату и попытался.Ничего не изменилось: (

изменить: вот код

for (int i =0; i<table.Rows.Count;i++)
{
    DataRow row = table.Rows[i];                                         
    for (int j = 0; j < table.Columns.Count; j++)
    {
        string t = table.Rows[i][j].GetType().ToString();
        if (table.Rows[i][j].GetType().Equals(typeof(DateTime)))
        {
            mydate = DateTime.Parse(table.Rows[i][j].ToString());
            var b = mydate.Month + "/" + mydate.Day + "/" + mydate.Year;
            var c = DateTime.Parse(b.ToString());
            var d = c.ToString("MM/dd/yyyy");
            table.Rows[i].SetField(j, c.ToString("MM/dd/yyyy"));
            var a = table.Rows[i][j];
        }
    }                        
}

1 Ответ

0 голосов
/ 26 февраля 2019

Похоже, вы решаете проблему пользовательского интерфейса в своем бэкэнд-коде.Это должно решаться на стороне пользовательского интерфейса, не влияя на ваши фактические данные.Вы можете сделать это, применив формат к вашему связанному столбцу или шаблону:

<asp:BoundField DataField="PurchaseDate" HeaderText="Purchase Date" DataFormatString="{0:MM/dd/yyyy}" />

ИЛИ

<asp:TemplateField HeaderText ="Purchase Date" >
   <ItemTemplate >
   <asp:Label ID="lblDate" runat="server" 
              Text='<%# Eval("PurchaseDate", "{0:MM/dd/yyyy}") %>' />
    </ItemTemplate>
</asp:TemplateField>

РЕДАКТИРОВАТЬ:

@ DineshInavolu, почему бы вам не попробоватьсобытие связанное со строкой и TryParse?

void OrderGridView_RowDataBound(Object sender, GridViewRowEventArgs e)
{        
    if(e.Row.RowType == DataControlRowType.DataRow)
    {
        DateTime? dateValue = null;
        if(!DateTime.TryParse(e.Row.Cells[1].Text, out dateValue))
            e.Row.Cells[1].Text = dateValue.Value.ToString("MM/dd/yyyy");        
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...