- - PR -
GridViewフォーマットについて
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2009-03-06 14:41
あ、失礼、TemplateFieldなのですね。だとHtmlEncodeは関係なさそうです(というかプロパティがない)。
小文字だと月じゃなくて分になってしまいます。 あと「.NETでも」の意味がよくわかりません。 で「yyyy/mm/ddで表示されてしまいます」って、それが希望じゃなかったですか? | ||||||||
|
投稿日時: 2009-03-06 14:52
間違えました。
引用: ------------------------------------------------------------------------------- .NETでもyyyy/mm/ddで表示されてしまいます。 ------------------------------------------------------------------------------- 「yyyy/mm/dd」形式じゃなくて「yyyy/mm/dd 0:00:00」形式で表示されてしまいます。 申し訳ありません。 mmを大文字の「yyyy/MM/dd」形式にしても駄目でした… | ||||||||
|
投稿日時: 2009-03-06 14:57
「yyyy/MM/dd」については、べるさんに補足して頂いたとおりです。
VWD2008 Express Edition ASP.NET Webサイト(C#) SQL Server 2008では、 DB上、date型の列でもdatetime型の列でも
というようなコードで正常に表示できました。 ただし、Bindしているものの実体が"2009/01/01 00:00:00"というような文字だったと書式文字列が無視されます。 実体と言っているのはDB上で文字型列であったり、 DataTableを使用している場合であればDataColumnがStringだったりした場合です。 | ||||||||
|
投稿日時: 2009-03-06 15:31
引用:
------------------------------------------------------------------------------- ただし、Bindしているものの実体が"2009/01/01 00:00:00"というような文字だったと書式文字列が無視されます。 実体と言っているのはDB上で文字型列であったり、 DataTableを使用している場合であればDataColumnがStringだったりした場合です。 ------------------------------------------------------------------------------- 上の引用から、「yyyy/MM/dd 0:00:00」形式でデータベースに登録されている時点でフォーマットはされないということと判断しました。 型を文字列型にして、試してみたのですが、やはり駄目でした。 ということはデータベース(SQLServer2005)にyyyy/mm/dd形式で登録しなければならないということなのでしょうか? 勘違いしていたら申し訳ありません。 | ||||||||
|
投稿日時: 2009-03-06 16:47
情報が断片的なので何とも言えませんが、
とは列の型でいいですか? くどいようですが今テーブルの列の型は何ですか?date, datetime, timestampとあると思いますがどれでしょうか。 SQLServer上のデータを確認したとき Management Studioでは yyyy-mm-dd hh:mm:ss のフォーマットで表示されるような気がしていて、 そこが最初から引っかかっています。
登録時は形式というより、DateTimeで登録できる値かどうか。という意識になると思います。 DB上dateで登録されていてもdatetimeで登録されていても、出力のタイミングで整形するために書式文字列が存在します。 [ メッセージ編集済み 編集者: デューン 編集日時 2009-03-06 16:48 ] | ||||||||
|
投稿日時: 2009-03-06 17:01
文字列型とは列の型のことです。
datetime型です。 Varchar型で試してみたのですが駄目でした。 @IT様のサンプルGridViewCustom.aspx(第何回のサンプルか忘れました。)は日付型がフォーマットされていました。 何か致命的なミスをしているような気がします。 GridViewCustom.aspxと見比べて原因を探っています。 サンプルは「第4回 テンプレート機能でGridViewコントロールも自由自在」でした。 [ メッセージ編集済み 編集者: ムラ 編集日時 2009-03-06 17:05 ] | ||||||||
|
投稿日時: 2009-03-06 19:40
解決しました。
フォーマットはうまくいかなかったので、 コントロールの左10文字抜き出すことでうまくいきました。 コード: CType(GridView2.Row(1).FindControl("Label1"), String).Text = Left(CType(GridView2.Row(1).FindControl("Label1"), String).Text,10) フォーマットがわからなかったため、完全な妥協ですが、 多くの御教授のお陰です。ありがとうございました。 [ メッセージ編集済み 編集者: ムラ 編集日時 2009-03-06 19:43 ] |