从数据库中提取数据时如何仅在GridView中显示日期? C#

时间:2014-01-31 16:15:04

标签: c# asp.net sql date gridview

我从访问数据库中提取数据,以显示在ASP.NET项目的GridView控件中。它工作正常,但我想看看我是否可以格式化正在拉动的数据。目前,任何货币都会从xx.xx截断为美元金额。日期显示为mm / dd / yyyy hh / mm / ss AM / PM

我尝试将数据库本身编辑为正确的值(我将货币字段设置为“货币”,将日期字段设置为“短日期”,但是当我拉出该日期时,它仍然显示它们没有格式化。

编辑:抱歉,不得不把代码记下来

有什么想法吗? 谢谢

4 个答案:

答案 0 :(得分:9)

在您的网格视图中添加名为DataFormatString

的属性

DataFormatString示例:


{0:dd MMMM yyyy}    -    gives 24 February 2006
{0:MMM dd}          -    gives Feb 24 (substitue MMM with MMMM for the full month name 
                         instead of abbreviation) 
{0:dd/MM/yy}        -    gives 24/02/06 
{0:dd/MM/yyyy}      -    gives 24/02/2006

示例代码

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

MSDN BoundField.DataFormatString Property

答案 1 :(得分:1)

您只需要将dataformatstring设置为您希望如何填充它。

如MSDN页面上所示:

金钱:

<asp:BoundColumn HeaderText="Price" DataField="Price"
                                     DataFormatString="{0:c}" />

使用{0:c},在c值之后放置一个数字(例如{0:c2})将为您提供多个小数位。

日期:

<asp:boundfield datafield="MyDate" dataformatstring="{0:MM/dd/yyyy}" />

答案 2 :(得分:0)

一种解决方案是:

  <asp:GridView ID="gvLEmployees" runat="server" AutoGenerateColumns="false" >
                                <Columns>
                                    <asp:TemplateField HeaderText="Name">
                                        <ItemTemplate>

                                                <%# Eval("Name")  %>                             
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="Date">
                                        <ItemTemplate>
                                             <%# Convert.ToDateTime(Eval("JoinDate")).ToShortDateString() %>
OR
<%# Convert.ToDateTime(Eval("JoinDate")).ToString("d") %>
                                        </ItemTemplate>

                                    </asp:TemplateField>
        </Column>
        </Gridview>

答案 3 :(得分:0)

您必须创建一个BoundField,设置其属性,包括属性dataformatstring,您可以使用该属性设置GridView中显示的字段格式,并将其添加到GridView控件。

下面是一些代码

 public GridView Cr_GridView(string[] ColNames,string[] ColLable, string[] ColFormat)
        {
            GridView GV = new GridView();
            int x = ColNames.GetUpperBound(0);

            for (int i = 0; i < x; i++)
            {
                BoundField GvField = new BoundField();

                GvField.DataField = ColNames[i];
                GvField.HeaderText = ColLable[i];
                GvField.DataFormatString = ColFormat[i];// for example "{0:dd/MM/yyyy}" for a date field

                GV.Columns.Add(GvField);
            }
            return GV;
        }