【问题标题】:How to display only date in GridView when pulling data from a DB? C#从数据库中提取数据时如何在 GridView 中仅显示日期? C#
【发布时间】:2014-02-24 10:11:34
【问题描述】:

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

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

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

有什么想法吗? 谢谢

【问题讨论】:

  • 请用一些示例代码编辑您的问题。
  • 刚刚添加了代码。谢谢
  • 请从 aspx 页面为 gridview 添加标记。可能需要为列设置格式字符串。

标签: c# asp.net sql date gridview


【解决方案1】:

在你的网格视图中添加名为DataFormatString的属性

DataFormatString 示例:

{0:dd MMMM yyyy} - 2006 年 2 月 24 日 {0:MMM dd} - 给出 2 月 24 日(用 MMMM 代替 MMM 来代替完整的月份名称 而不是缩写) {0:dd/MM/yy} - 给出 24/02/06 {0:dd/MM/yyyy} - 给出 24/02/2006

示例代码

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

MSDN BoundField.DataFormatString Property

【讨论】:

  • 谢谢!这很好用,但现在我得到了格式化的列,在它们旁边还有另一组来自未格式化的代码生成的列。我使用的代码:
  • Amarnath,我没有收到任何错误但重复的列,例如:goo.gl/BVbprD
  • 在grid中添加autogeneratecolumns为false这个属性要加在GridView的ID后面
  • 使用 DataFormatString="{0:d}" 将其本地化为任何文化。
【解决方案2】:

您只需要根据您希望的填充方式设置数据格式字符串。

如 MSDN 页面所示:

金钱:

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

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

日期:

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

【讨论】:

    【解决方案3】:

    一种解决方案是:

      <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>
    

    【讨论】:

      【解决方案4】:

      您必须创建一个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;
              } 
      

      【讨论】:

        猜你喜欢
        • 2019-11-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-04
        • 1970-01-01
        • 1970-01-01
        • 2020-10-13
        相关资源
        最近更新 更多