- PR -

テンプレート列の各種データの取得と更新

1
投稿者投稿内容
アレク
会議室デビュー日: 2005/04/11
投稿数: 14
投稿日時: 2005-04-17 16:54
こんにちわ。いつもお世話になっています。
今回は、テンプレート列を使用した際の動作についてお聞きしたいことがあります。

データベースからデータグリッドに読み込み、登録されているアカウントを表示して
それに対して編集をかけるというページを作成しているのですが、
データグリッドの機能で、ボタン列という物があり
これを利用すると、行単位で編集できるようになりますが、
そうではなく、テンプレート列を利用して直接は編集できないようにしたいのですが
これを更新(UPDATE)する際に、どうすればいいのかわかりませんでした。
例えば、今はテンプレート列でドロップリストを挿入し
アカウントNo 名前 種類
の様な物が表示されるとして、この種類の部分をドロップリストで変更できるようにしています。
これが複数件表示されますが、変更は行単位ではなく
全て一括で行いたいと考えています。
つまり表示された全てのアカウントに対して、ドロップリストで種類を各自設定した後
「変更」ボタンを押すと全てが一斉に反映される、という構想なのですが
まず各行のドロップリストの値の取得の仕方がわからないので
SQLの発行の仕方が思いつきません。
値の取得ができたとして、思いついているのは
各行ごとに反映してループで最後まで回し、1行ずつUPDATEのSQLを発行するという方法を考えているのですが
かなり非効率的ですので、一気にできるような機能はないのでしょうか?

ループ処理
 n行目のドロップリストの値を取得
 値からSQL文を動的に書き換えてUPDATE発行
ループ終了
これだと行の文だけループが回り、SQLも形分だけ発行されることになるので
かなりの負荷になりそうなので。

テンプレート列で埋め込んだ各種コントロールからの値の取得方法と、
効率的な反映方法をご教授していただけないでしょうか。
アレク
会議室デビュー日: 2005/04/11
投稿数: 14
投稿日時: 2005-04-17 21:41
環境を書き忘れていました。

サーバ:IIS6.0
プログラム:ASP.NET(言語はVB.NET)
DB:MSDE
を使用しています。
黒コアラ
常連さん
会議室デビュー日: 2004/07/03
投稿数: 23
投稿日時: 2005-04-17 23:17
引用:

まず各行のドロップリストの値の取得の仕方がわからないので



該当の行にアクセスして
http://www.atmarkit.co.jp/fdotnet/dotnettips/064dgcell/dgcell.html
findcontrolでコントロールを指定すればvalueを得られるかと。

datagrid.items(i).findcontrol("dropdownlist")
てな感じでしょうか。
アレク
会議室デビュー日: 2005/04/11
投稿数: 14
投稿日時: 2005-04-18 21:19
黒コアラさん、レスありがとうございます。

早速試してみたのですが
値を取得できるにはできるのですが、何故か初期項目しか取得できませんでした。
ドロップダウンリストで言うと、index値が0番の部分の値を取得してきます。
コード的には

(Ctype(datagrid.items(i).Cells(0).Findcontrol("TestDrop"), DropDownList).SelectedValue)

というようにSelectedValueで取得しているのですが、
選択してある値ではなく、先頭の値しか取れませんでした。
ドロップリストに、「あ」「い」「う」 と一文字ずつ順番にあるとして
「う」を選択した状態なのに、「あ」を選択していることになっています。
「あ」という値自体は取れているので、ドロップダウンリストの値を取得していることは間違いないのですが・・・
黒コアラ
常連さん
会議室デビュー日: 2004/07/03
投稿数: 23
投稿日時: 2005-04-19 14:30
なんか自分も昔同じような現象に見舞われたことがあるのですが、

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=19092&forum=7

ということではありませんか?
アレク
会議室デビュー日: 2005/04/11
投稿数: 14
投稿日時: 2005-04-20 19:46
正にその通りでした。

Loadを最初の実行時のみプログラムが通るように
IF文で書いたところ、無事に希望の動作と結果を得られました。

本当にありがとうございました。

1

スキルアップ/キャリアアップ(JOB@IT)