- PR -

DataGridのページングでのデータの持ち方

投稿者投稿内容
ryu
常連さん
会議室デビュー日: 2005/07/05
投稿数: 30
投稿日時: 2005-09-22 11:04
SE卵さん本当にありがとうございます。

今、サンプルを例にほとんどがわからない言葉ばかりなので
調べながらコーディングしています。遅くなってしまい申し訳ありません。

本当に申し訳ありません。調べてみてもどうしてもわからない事があり、
教えていただきたいのですが、迷惑を掛けて本当に申し訳ありませんが
よろしくお願いします。

えっと。。。
Llbl = CType(Row.FindControl("取得したいデータのID"), Label)
ってあるのですが、いまいちこの意味がわからないんです。。。
ラベルコントロールにチェックボックスの検索結果を入れている??
って事はラベルコントロールを追加しないといけないということですか?

もう一つなのですがDataGrid_PageIndexChangedとdatagrid_ItemDataBoundの
ArrayListの受渡しなのですがこれってセッション変数を利用して行った方が
よろしいのでしょうか?

的外れな質問で本当に申し訳ありませんがよろしくお願い致します。
引き続き調べながらコーディングしていきます。
SE卵
大ベテラン
会議室デビュー日: 2004/10/22
投稿数: 135
投稿日時: 2005-09-26 09:26
返信遅れてすいません。仕事休みだったので。。。

> Llbl = CType(Row.FindControl("取得したいデータのID"), Label)
>ってあるのですが、いまいちこの意味がわからないんです。。。
>ラベルコントロールにチェックボックスの検索結果を入れている??
>って事はラベルコントロールを追加しないといけないということですか?

例が悪かったかな・・・
コード:
Dim Cb   As CheckBox 
Dim Row  As DataGridItem
Dim Llbl As Label

Dim arryList = New ArrayList 

For Each Row In DGD_IRO.Items 
    Cb = CType(Row.FindControl("CheckBox1"), CheckBox) @
    
    If Cb.Checked Then A
        '' チェックされている場合
        '' ここでは例としてラベルコントロールを取得
        Llbl = CType(Row.FindControl("取得したいデータのID"), Label) B

        arryList.Add(Trim(Llbl.Text)) C
    End If
Next 



@ 行にあるチェックボックスを取得する。
A チェックの有無の判断
B チェックが有の場合、そのレコードの主キーとなるデータを取得する。

  ※注意
  あくまで例で、ラベルコントロールにしてますけど、主キーとなるデ
  ータを保持しないとチェックを復元する時に、どのデータにチェック
  を入れるか分かりませんよね?ひょっとすると、インデックスかなん
  かでやろうとしてます?

C 配列に格納


>もう一つなのですがDataGrid_PageIndexChangedとdatagrid_ItemDataBoundの
>ArrayListの受渡しなのですがこれってセッション変数を利用して行った方が
>よろしいのでしょうか?

ArrayListの受渡しはセッションを使用した方が良いですか?って、ryuさん
  のシステムすべてを分かっている訳ではないので、今回はセッションでも問題
  ないなんて、言い切る事は出来ません。セッション変数でも問題ないという裏
  付けを取ってからじゃないと、後々動かなくなったなんていわれても困ります
  から、調べてから、使用してください。

  あくまで、私自身の案ですが、こういう場合はケースバイケースだと思う。Vi
  ewStateや何かのコントロールに保持させておくなど、他にもいろいろ方法は
  ある。もちろんセッション変数って手もある。
かな
会議室デビュー日: 2004/06/30
投稿数: 10
投稿日時: 2005-11-20 23:35
便乗して質問させてください。

-------------------------------------------------------------------------------
DBからDataGridってことは、DataSourceにDataSetかDataTableを指定してDataBindしているってことで良いでしょうか?
で、ページングしてるってことは、既にこのDataSetかDataTableはSessionに保持するようにしている?

↑の前提で話を進めると、DataTableにチェックボックス用の列を追加して、そこにチェックボックスのCheckedプロパティの値を保持するようにすればいいんじゃないでしょうか。
DataTable1.Columns.Add("CheckBox", GetType(Boolean))
みたいな感じで。
-------------------------------------------------------------------------------

上記のやり方がうまく出来ません。

私がやろうとしていることは、
DataSourceにDataTableを指定してDataBindしています。
テンプレートのチェックボックス列があり、DataGrid以外に配置してあるボタンを押下した時に、表示してあるDataGridの内容(チェックボックスの状態も含)をDataSet型でSessionに入れて次画面に渡したいのです。(チェックボックスのオン・オフ以外には変更項目はありません)
DBから取得したDataTableではチェックボックスの項目はありませんが、上記の方法で、取得したDataTabelにチェックボックス用のカラムは追加してあります。
そのバインド後に表示したDataGridでチェックボックスをオンした後にこの情報をDataSetで取得するやり方がわかりません。

よろしくお願いします。

[ メッセージ編集済み 編集者: かな 編集日時 2005-11-21 15:25 ]

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