- - PR -
DataGrid の表示形式の設定について
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-03-10 16:31
囚人さん、ご迷惑をおかけしております。
そうですね(^^;) 説明しても「今回のシステムだけ例外な作りはダメ」となるものでして・・・ 開発側のジレンマです。
startymd は入力チェックをしているため、必ず西暦8桁の有効な日付が入っています。 ただし、空白を許していますので空白+西暦8桁の数字となります。 教えていただいた両方とも試してみましたが、コンパイルエラーとなってしまいます。 −−−−−−−−−−−− 以下、エラー内容 −−−−−−−−−−−− 説明 : この要求の処理に必要なリソースのコンパイル中にエラーが発生しました。以下の解析エラーの詳細を確認し、ソース コードに変更を加えてください。 コンパイラ エラー メッセージ: BC30516: この引数の数を受け付ける 'ToString' がないため、オーバーロードの解決に失敗しました。 ソース エラー: 行 109: <HeaderStyle Width="10%"></HeaderStyle> 行 110: <ItemTemplate> 行 111: <asp:Label id="lblDbStartYmd" runat="server" Text='<%# databinder.eval(container.dataitem,"startymd") != String.Empty ? DateTime.Parse(databinder.eval(container.dataitem,"startymd")).ToString("yyyy/MM/dd") : String.Empty %>'> 行 112: </asp:Label> 行 113: </ItemTemplate> //localhost/page/Test.aspx(111) : error BC30516: この引数の数を受け付ける 'ToString' がないため、オーバーロードの解決に失敗しました。 target.Text = System.Convert.ToString(databinder.eval(container.dataitem,"startymd") != String.Empty ? DateTime.Parse(databinder.eval(container.dataitem,"startymd")).ToString("yyyy/MM/dd") : String.Empty) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //localhost/page/Test.aspx(111) : error BC32017: カンマ、')'、または有効な式の継続文字が必要です。 以下、大量のエラーが続きます。 −−−−−−−−−−−− 以上、エラー内容 −−−−−−−−−−−− 教えていただいた内容が理解できていないのでデバッグ出来ていないのですが、stratymd が空以外の場合、出力するようにしていますよね。途中の「?」は何でしょうか? 見る限りでは、stratymd をDateTime型に変換して、それを「yyyy/MM/dd」にフォーマットしていると思われるので、一見良さそうに思えるのですが・・・ [ メッセージ編集済み 編集者: ひろれい 編集日時 2006-03-10 16:34 ] | ||||||||||||
|
投稿日時: 2006-03-10 16:48
三項演算子ですね。
.ToString("yyyy/MM/dd") つまり ToString([string]) を受け付けるオーバーロードがないと思います。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2006-03-10 17:11
初めて知りました(^^;) IF文と同じように「expr ? true_expr : false_expr」という感じで使うんですね。ありがとうございます。
ありがとうございます。ちょっと複雑なので(複雑でも何でもない?!)、色々と調べながら考えてみます。インラインは、インテリセンスが使えないので辛いです・・・ [ メッセージ編集済み 編集者: ひろれい 編集日時 2006-03-10 17:14 ] | ||||||||||||
|
投稿日時: 2006-03-10 17:28
あれ?おかしいな。DateTime.ToString( string value )になっている筈なんですが。 カッコがずれているのかな。 _________________ 囚人のジレンマな日々 | ||||||||||||
|
投稿日時: 2006-03-10 17:40
または、引用符が閉じ忘れて式の終わりがないと言っているとか。 たとえば、最後の「'」引用符とか。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2006-03-10 18:04
囚人さん、じゃんぬさん、ありがとうございます。
目視では、カッコのズレも引用符漏れも無い気がします。 <asp:Label id="lblDbStartYmd" runat="server" Text='<%# databinder.eval(container.dataitem,"startymd") != String.Empty ? DateTime.Parse(databinder.eval(container.dataitem,"startymd")).ToString("yyyy/MM/dd") : string.empty %>'> </asp:Label> DateTime.Parse("20060101").ToString("yyyy/MM/dd") では変換できないのでしょうか? | ||||||||||||
|
投稿日時: 2006-03-10 18:11
そもそも、これはダメですよ。 何が Year で何が Month で何が Day なのかわからないです。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2006-03-10 18:18
そういう事なので、Int32.Parse() の方を使ってくだされ。 _________________ 囚人のジレンマな日々 |