- - PR -
CalendarコントロールをDataGridの編集時に表示させる時にContainer.DataItemの値がNullだと…
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-04-01 00:50
こんばんは。初めて投稿します。
初心者ながらASP.NETを使ってAccess連携データベースを作っています。 まだ本を見ながらのよちよち歩きですがよろしくお願いたします。 DataGridのEditCommandでの編集を行いたいのですが、その際日付を入力する欄にItemTemplate列でCalaendarコントロールを表示させようとしています。 このとき、編集する日付フィールドが空白(Null)だと 「型 'DBNull' から型 'Date' へのキャストが有効ではありません。」 のエラーが出てしまいます。 このような場合の対処方法を教えてください。 おそらく、カスタム連結式からメソッドを呼び出してFunctionプロシージャを作るんだと思うのですが、そのやり方がわかりません。 どなたかどうかよろしくお願い申し上げます。 (VBです。) [ メッセージ編集済み 編集者: もりの 編集日時 2004-04-01 01:11 ] [ メッセージ編集済み 編集者: もりの 編集日時 2004-04-01 01:23 ] | ||||||||
|
投稿日時: 2004-04-01 13:35
自己レスです。半分解決しました。
Template列のCalenderコントロールのSelectedDataとVisibleDataのカスタム連結式に nantoka(Container.DataItem("フィールド名")) として、コードビハインドのほうで Function nantoka(Byval DataItem As Object) As Date If DataItem Is Nothing Then Return Today Else Return dataitem End If End Function とすれば、とりあえず値が存在するものを編集することはできました。 しかし、値がないとやっぱり型に関するエラーが出てしまいます。 (値がない場合、今日の日付を返したいと思っています) たいへん恐縮ですが、引き続きよろしくお願いいたします。 | ||||||||
|
投稿日時: 2004-04-01 16:12
KEIです。
とありますが、ここを次のようにしたらどうでしょうか? これでDateTime型以外の場合は、Today?が返却されると思います。
| ||||||||
|
投稿日時: 2004-04-01 19:17
KEIさんありがとうございました。
「もし型が〜だったら〜する」という発想は目から鱗でした。 おっしゃるとおり、 If DataItem Is DateTime Then としてみたのですが、これは型を式としては使えないとのエラーが出てしまいました。 でもこれはかなり近づいたと思います。 この方向でがんばってみたいと思います。 (二番目に書いたやり方でIfの前にTry〜を入れてやるとできることはできるんですが、なんか理解してしないまま終わってしまいそうなので…) | ||||||||
|
投稿日時: 2004-04-01 19:49
としてみて下さい。 | ||||||||
|
投稿日時: 2004-04-01 19:50
ぼるとさんフォローありがとうございました。
C#風に書いたらだめでしたね^^; | ||||||||
|
投稿日時: 2004-04-01 20:17
KEIさん、ぼるとさんありがとうございました。ばっちり動きました。
データ型を参照するときはTypeOfを使うのですね。なるほど〜。 本当にありがとうございました。 初歩的な質問で大変失礼いたしました。 |
1