Board logo

主題: [ASP] [求助][求助]ASP.NET的元件 [打印本頁]

發表人: 多情劍子    時間: 2007-4-17 01:48 PM     主題: [求助][求助]ASP.NET的元件

ASP.NET的GridView元件在顯示日期時都會出現上午 12:00:00,請問要如何消除?
發表人: ithinkurdumb    時間: 2007-4-17 03:59 PM

不清楚你的問題是怎麼發生的,
不過我猜是因為你的資料只有日期而沒有時間,
所以DateTime.ToString()之後會出現時間.

可以用DateTime.ToLongDateString()或是DateTime.ToShortDateString(),
這樣就只會顯示日期.
也可以在ToString()裡面加上format string,
像是DateTime.ToString("MM.dd.yyyy")就會顯示04.17.2007這樣.
format string MSDN裡面有說明.
發表人: 多情劍子    時間: 2007-4-18 01:41 PM


引用:
ithinkurdumb寫到:
不清楚你的問題是怎麼發生的,
不過我猜是因為你的資料只有日期而沒有時間,
所以DateTime.ToString()之後會出現時間.

可以用DateTime.ToLongDateString()或是DateTime.ToShortDateString(),
這樣就只會顯示日期.
也可以在ToString()裡面加上format string,
像是DateTime.ToString("MM.dd.yyyy")就會顯示04.17.2007這樣.
format string MSDN裡面有說明.


我是用Griew View元件來顯示資料庫的資料,但遇到顯示日期就會發生多出上午 12:00:00的情況,我稿不清楚DateTime.ToLongDateString要在那個屬性設定??
發表人: ithinkurdumb    時間: 2007-4-20 05:18 PM

把那段程式貼上來吧.
發表人: 多情劍子    時間: 2007-4-23 08:57 AM


引用:
ithinkurdumb寫到:
把那段程式貼上來吧.

<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>未命名頁面</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" BackColor="White"
            BorderColor="#CC9966" BorderStyle="None" BorderWidth="1px" CellPadding="4" DataSourceID="AccessDataSource1">
            <FooterStyle BackColor="#FFFFCC" ForeColor="#330099" />
            <Columns>
                <asp:BoundField DataField="廠牌" HeaderText="廠牌" SortExpression="廠牌" />
                <asp:BoundField DataField="型式" HeaderText="型式" SortExpression="型式" />
               
<asp:BoundField DataField="購置年月" HeaderText="購置年月" SortExpression="購置年月" />
                <asp:BoundField DataField="年限" HeaderText="年限" SortExpression="年限" />
                <asp:BoundField DataField="使用IP" HeaderText="使用IP" SortExpression="使用IP" />
                <asp:BoundField DataField="作業系統" HeaderText="作業系統" SortExpression="作業系統" />
                <asp:BoundField DataField="網路卡位址" HeaderText="網路卡位址" SortExpression="網路卡位址" />
            </Columns>
            <RowStyle BackColor="White" ForeColor="#330099" />
            <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="#663399" />
            <PagerStyle BackColor="#FFFFCC" ForeColor="#330099" HorizontalAlign="Center" />
            <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="#FFFFCC" />
        </asp:GridView>
        <asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/Info.mdb"
            SelectCommand="SELECT [廠牌], [型式], [購置年月], [年限], [使用IP], [作業系統], [網路卡位址] FROM [資訊管理Data]">
        </asp:AccessDataSource>
   
    </div>
    </form>
</body>
</html>
發表人: csjian    時間: 2007-5-10 01:39 PM

你可以用 DataFormatString 去格式他你的時間,如下 (顯示出來變成 2007/05/08)
<asp:BoundField DataField="購置年月" HeaderText="購置年月" SortExpression="購置年月"  DataFormatString="{0:yyyy/MM/dd}"  />
發表人: 多情劍子    時間: 2007-5-10 02:39 PM


引用:
csjian寫到:
你可以用 DataFormatString 去格式他你的時間,如下 (顯示出來變成 2007/05/08)
<asp:BoundField DataField="購置年月" HeaderText="購置年月" SortExpression="購置年月"  DataFormatString="{0:yyyy/MM/dd}"  />

我已經試過了沒有用,聽說這好像是FrameWork的Bug?
發表人: csjian    時間: 2007-5-10 05:41 PM

嗯,我是在 .Net 2.0 上用的,沒有問題。其他版本就沒試過了
還有一個方式是你自己寫一個 function 來轉,網頁的部份改成
<asp:TemplateField HeaderText="購買年月">
     <ItemTemplate>
         <asp:Literal ID="lblTime" runat="server" Text='<%# DisplayTime(DataBinder.Eval (Container.DataItem, "購買年月")) %>' />
     </ItemTemplate>
</asp:TemplateField>

然後寫一個 Function

Protected Function (ByVal date as String) As String
  ' 處理那個 date
  ' 最偷懶就是直接拿前面10個字送出
  ' return date.subString(0,10)
End Function

[csjian 在  2007-5-10 05:50 PM 作了最後編輯]
發表人: 多情劍子    時間: 2007-5-12 11:10 AM

我已經找到答案了,將HtmlEncode屬性設成False(預設值為True),再設DataFormatString="{0:yyyy/MM/dd}"即可正常顯示,感謝各位熱心的指導!!




歡迎光臨 TWed2k (http://twed2k.org/) Powered by Discuz! 4.1.0