- - PR -
ASP.NET チェックボックスでデータグリッドの行の削除や選択を行いたい
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-05-24 10:27
いつもお世話になっております。
HOTMAILの受信トレイ画面のようにレコードにチェックボックスをつけて チェックした項目を削除のようなことをやりたいのですが、どのように して実装されているのかがわかりませんでした。 ご教授の方をお願い致します。 |
|
投稿日時: 2005-05-24 11:12
データグリッドで一覧を表示しているとして、
項目の先頭にチェックボックスを設定しているとします。 そのチェックボックスのIDが「chkDelete」みたいなのだったとします。 また隠しフィールドとしてラベルでも構わないのでその表示しているリストの ユニークキーとなるものを1つ構えておきます。 そのラベルをID「lblID」みたいにして置いておきます。 あとは削除ボタンが押されたイベントで、 データグリッドのカウントを取ってfor文で回して、 DataGrid.Items(i).FindControl("chkDelete") DataGrid.Items(i).FindControl("lblID") でそれぞれコントロールを取得すれば、 チェックがついてる列に対してユニークキーを使って削除処理が行えると思います。 |
|
投稿日時: 2005-05-24 11:43
そうまさん様
返信ありがとうございます! すいません・・・チェックボックスを表示するところからわからないです。。 編集や選択といったボタンはデフォルトのデータグリッドのプロパティビルダー に用意されているようなのですが、チェックボックスは入ってないように思えます。 レコードとチェックボックスを関連付けるにはデータグリッドのデータテーブルに 一時的にBOOL型のフィールドを付けるなどしないといけないのでしょうか? 初心者でほんとに申し訳ないです。 |
|
投稿日時: 2005-05-24 11:49
http://support.microsoft.com/default.aspx?scid=kb;ja;321881
|
|
投稿日時: 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> こんな感じに変りました。 これで、データグリッド内にチェックボックスと、 非表示のユニークキーが実装できるのではないでしょうか? |
|
投稿日時: 2005-05-24 13:14
burton999様
そうまさん様 わかりやすいご説明ほんとうにありがとうございます! さっそく試してみたいと思います! |
1