- PR -

ASP.NET チェックボックスでデータグリッドの行の削除や選択を行いたい

1
投稿者投稿内容
S_Tatsu
ベテラン
会議室デビュー日: 2005/05/13
投稿数: 58
お住まい・勤務地: 東京
投稿日時: 2005-05-24 10:27
いつもお世話になっております。
HOTMAILの受信トレイ画面のようにレコードにチェックボックスをつけて
チェックした項目を削除のようなことをやりたいのですが、どのように
して実装されているのかがわかりませんでした。
ご教授の方をお願い致します。
そうまさん
常連さん
会議室デビュー日: 2003/07/17
投稿数: 27
お住まい・勤務地: ジャポン
投稿日時: 2005-05-24 11:12
データグリッドで一覧を表示しているとして、
項目の先頭にチェックボックスを設定しているとします。
そのチェックボックスのIDが「chkDelete」みたいなのだったとします。
また隠しフィールドとしてラベルでも構わないのでその表示しているリストの
ユニークキーとなるものを1つ構えておきます。
そのラベルをID「lblID」みたいにして置いておきます。

あとは削除ボタンが押されたイベントで、
データグリッドのカウントを取ってfor文で回して、
DataGrid.Items(i).FindControl("chkDelete")
DataGrid.Items(i).FindControl("lblID")
でそれぞれコントロールを取得すれば、
チェックがついてる列に対してユニークキーを使って削除処理が行えると思います。
S_Tatsu
ベテラン
会議室デビュー日: 2005/05/13
投稿数: 58
お住まい・勤務地: 東京
投稿日時: 2005-05-24 11:43
そうまさん様
返信ありがとうございます!
すいません・・・チェックボックスを表示するところからわからないです。。
編集や選択といったボタンはデフォルトのデータグリッドのプロパティビルダー
に用意されているようなのですが、チェックボックスは入ってないように思えます。
レコードとチェックボックスを関連付けるにはデータグリッドのデータテーブルに
一時的にBOOL型のフィールドを付けるなどしないといけないのでしょうか?
初心者でほんとに申し訳ないです。
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2005-05-24 11:49
http://support.microsoft.com/default.aspx?scid=kb;ja;321881
そうまさん
常連さん
会議室デビュー日: 2003/07/17
投稿数: 27
お住まい・勤務地: ジャポン
投稿日時: 2005-05-24 13:08
burton999さんの参照するページに詳しく書いてありますので、
簡単に私が実現している方法を。

まずはデータグリッドにテンプレート列を追加します。

<asp:TemplateColumn></asp:TemplateColumn>

追加直後はこんなんですね。
そこにチェックボックスのコードを直接書き込みます。

<asp:TemplateColumn>
 <ItemTemplate>
  <asp:CheckBox id="chkDelete" runat="server"></asp:CheckBox>
 </ItemTemplate>
</asp:TemplateColumn>

こんな感じに変りました。
そして1つユニークキーを非表示で持つため、ラベルを追加します。

<asp:TemplateColumn>
 <ItemTemplate>
  <asp:CheckBox id="chkDelete" runat="server"></asp:CheckBox>
  <asp:Literal id="lblID" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "ID") %>' Visible="false"></asp:Literal>
 </ItemTemplate>
</asp:TemplateColumn>

こんな感じに変りました。

これで、データグリッド内にチェックボックスと、
非表示のユニークキーが実装できるのではないでしょうか?
S_Tatsu
ベテラン
会議室デビュー日: 2005/05/13
投稿数: 58
お住まい・勤務地: 東京
投稿日時: 2005-05-24 13:14
burton999様
そうまさん様
わかりやすいご説明ほんとうにありがとうございます!
さっそく試してみたいと思います!
1

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