none
DetailsViewのInsertVisibleを設定した項目に値を与えたい RRS feed

  • 質問

  • 新規データ挿入の入力画面にDetailsViewを使っています。

    データベースの項目に登録日時の項目があり、これは
    INSERT実行時に初めて決定されるものなので、
    DetailsViewのInsertVisibleをfalseに設定しました。

    これで挿入入力時に登録日時の項目を非表示にできましたが、
    DetailsView.InsertItem()の実行時に、登録日時を与えたいのですが、
    どうすれば与えることができますでしょうか?

    よろしくお願いいたします。

    2006年4月22日 18:41

回答

  • データベースとのやり取りにはSqlDataSourceを利用しているのでしょうか?
    この場合だと、InsertCommandのSQL文を修正して現在時刻を設定してしまうようなSQL文を作ってしまうのが楽なように思います。

    プログラムから日時を設定したいという場合は、Parameterのドキュメントに載っているStaticParameterクラスを利用するといった方法が使えるかと思います。
    http://msdn2.microsoft.com/ja-jp/library/system.web.ui.webcontrols.parameter.aspx

    #通常のパラメータに直接プログラムから値を渡す方法ってないんですよね。。。

    2006年4月24日 2:05

すべての返信

  • データベースとのやり取りにはSqlDataSourceを利用しているのでしょうか?
    この場合だと、InsertCommandのSQL文を修正して現在時刻を設定してしまうようなSQL文を作ってしまうのが楽なように思います。

    プログラムから日時を設定したいという場合は、Parameterのドキュメントに載っているStaticParameterクラスを利用するといった方法が使えるかと思います。
    http://msdn2.microsoft.com/ja-jp/library/system.web.ui.webcontrols.parameter.aspx

    #通常のパラメータに直接プログラムから値を渡す方法ってないんですよね。。。

    2006年4月24日 2:05
  • >#通常のパラメータに直接プログラムから値を渡す方法ってないんですよね。。。

    SqlDataSource1.InsertParameters["hogeDate"].DefaultValue = "2006/04/24";

    みたいな感じじゃなくてですか? 何か勘違いしてそうな私・・・。

    2006年4月24日 7:54
    モデレータ
  • DefaultValueに値を一度設定したあと、その後のプログラムから変更できなかった記憶があるんですが。。。

    #なんかおかしなことやってたかな?

    2006年4月24日 8:46
  • >DefaultValueに値を一度設定したあと、その後のプログラムから変更できなかった記憶があるんですが。。。

    実際に試してみましたが、変更できましたよ。ただ、DefaultValueという名前のプロパティに値をセットするのがちょっと違和感あります。

    2006年4月24日 9:50
    モデレータ
  • >この場合だと、InsertCommandのSQL文を修正して
    >現在時刻を設定してしまうようなSQL文を作ってしまうのが楽なように思います。

    今回はこの方法で解決しました。皆様ありがとうございました!

    2006年4月24日 23:56