ListViewで1つを選択して詳細表示する方法

このQ&Aのポイント
  • Visual Studio 2008 を使ってWebサイトを作成中の方へ、ListViewコントロールで一覧表示した中から1つを選んで詳細表示する方法について教えてください。
  • GridViewコントロールには「選択を有効にする」のチェックがありますが、ListViewコントロールにはないため困っています。
  • ListViewで一覧表示し、1つを選んでDetailViewで詳細表示する方法や、他の方法でも良いのでご教示ください。
回答を見る
  • ベストアンサー

ListViewで1つを選択して詳細表示するには

会社でいきなりVisual Studio 2008 を使い始めた者です。 Webサイトを作成しようとしており、慣れないながら悪戦苦闘しています。 GridViewコントロールのGridViewタスクには「選択を有効にする」のチェックがあり、それにより一覧表示された中から1つを選んでDetailViewで詳細表示、という流れが出来ることは、テストWebサイトを作成して確認しました。 しかし一方、ListViewコントロールのタスクには「選択を有効にする」のチェックがなく困っています。 (「ページングを有効にする」なら、GridViewにもListViewにもあるのに。残念) ListViewから詳細表示に持っていく流れにしてみたいのですが、どうすればいいのでしょうか。 希望としては、ListViewで一覧表示、そこから1つのみ選択してDetailViewで詳細表示、ができればいいなと思っています。が、それ以外でも良い方法があれば教えてもらえれば幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • kero_mio
  • ベストアンサー率90% (94/104)
回答No.1

ListViewで選択モードを対応させるインターフェースはあるんですが、 問題はデザイナで選択モードに対応する簡易設定できるものがないんですよね。 もし、ListViewで選択モードを対応させるには、自前でボタンを用 意し、Select(選択)できるボタンを用意し、ItemTemplateに記述し てあげる必要があります。 <asp:LinkButton ID="SelectButton" runat="server" CommandName="Select" Text="選択" /> みたいな感じで。重要なのは用意したボタンにCommandNameに"Select"を設定することです。こうすると行選択できるボタンを 作ることができます。 後、DetailsViewに選択した行を表示させるには、 ListViewのSelectedIndexChangingイベントなどを使って、 DetailViewに選択行の内容を表示させるよう指示かけられば 簡単にできます。 詳しくは、 http://techbank.jp/Community/blogs/mymio/archive/2008/11/22/3358.aspx をご参考下さい。よろしくお願いします。

参考URL:
http://techbank.jp/Community/blogs/mymio/archive/2008/11/22/3358.aspx
honoka-cha
質問者

お礼

CommandName="Select"を追加したボタンまたはリンクを、 コードファイル(今回は .aspx.vb)を直接編集してアイテムテンプレート、オルトネイティブテンプレート、セレゥティドテンプレートに 書き込みました。そして想定通りの動作ができました。 わかりやすい回答でたいへん助かりました。ありがとうございます。

関連するQ&A

  • ListView 項目の選択/選択解除について

     ListViewに表示する情報が1件しかないとき、その情報が常に選択された状態なので、 困っています。  1件しかなくても、選択したり、選択を解除したりすることは出来ないのでしょうか?  または、ListViewでは出来ないけど、他のコントロールなら出来ると言う情報があり ましたらぜひ教えてください。  よろしくお願いします。

  • ExcelにてListviewが表示できない

    Excelにて「Microsoft Listview Control 6.0」を使っていたのですが、 突然、表示できない状況になりました。 修復させる方法はあるのでしょうか? また、最悪の場合、普通のListで作成し直したいのですが、 その際に、Listview他のコントロールを再利用したいので、 Listviewをフォームを表示させないで削除する方法はあるのでしょうか? それとも、他のコントロールも作り直すしかないのでしょうか? よろしく、お願いいたします。

  • Listviewにチェックボックスを表示して更新

    asp.net初心者です。 Listviewにチェックボックスを表示して更新したい考えております。 DB:postgres 例として・・・ 食べ物一覧をDBからselectしてListviewに一覧を表示しました。 そこへcheckboxをつけて、好きな食べ物で登録したものにチェックをつけます。 checkboxを更新して変更できるようにしたいと考えてます。 非バインド型で作る?・・・どのようにcheckboxに値を持たせて、Listviewに追加するのがよいのやら 解っておりません。 値さえ取得できれば、DB更新はなんとかできそうなのですが、ご教授頂ければ幸いです。

  • checkbox付きListViewで デフォルトチェック

    チェックボックス付きのListViewコントロールで初期値としてチェックボックスにチェック をして表示したいと思っております。 Listviewにデータを追加して(subitemもあるため)その後 ListView1.Item(i).Selected = True をしているのですが、チェックして表示されません。 項目が表示された後、何れかの項目をチェックしようとするとチェックが表示されます。 どのようにすれば最初から表示されるのでしょうか? 初歩的な質問かもしれませんが、お願い致します。

  • ListViewコントロールでサムネイル画像を一覧表示するには?

    VB初心者です。 .NET TIPSの中に「ListViewコントロールでサムネイル画像を一覧表示するには?」というものがありました 今回、それを利用してサムネイル一覧の表示をしようとして行き詰りました。 作りたいのは以下のものです ○決まったサイズの画像(bitmap)を表示し、その下にファイル名(フルパスでは無い)を表示し、更にその下に元の画像のサイズを表示するようなものを作成したいのですが、作成可能でしょうか? また、作成可能な場合、どういった方法で作成したら良いか教えて下さい。 行き詰ったのは、第一段階の、サムネイル画像のしたのファイル名の所です。 よく分からずに ListView1.Items.Add(bmpFiles(i), i)の所を Dim bmpFileName As String = _ Path.GetFileNameWithoutExtension(bmpFiles(i)) ListView1.Items.Add(bmpFileName) bmpFileName(ファイル名のみ)に変更したら、ファイル名は表示されるのですが、画像が表示されませんでした。 次に両方書いたのですが画像の下にフルパスその横にファイル名が表示されます。 Dim bmpFileName As String = _ Path.GetFileNameWithoutExtension(bmpFiles(i)) ListView1.Items.Add(bmpFiles(i), i) ListView1.Items.Add(bmpFileName) 色々調べてみたのですが、思ったような記述が無かったのでここで質問させて頂きました。 拙い質問なので分かり難いかと思いますがアドバイスをよろしくお願いいたします。

  • ListViewの項目を入れ替える

    C++で詳細表示のリストビューを扱うプログラムを書いているのですが あるボタンを押すと選択した項目が上や下に移動するようにしたいんです そのためには選択した項目とその上下の項目を入れ替えたらいいと思うのですが やり方がわかりません ListView_SortItemsマクロを使ってみましたが、ある二つの項目だけを入れ替えるのは できなさそうです。 MFCを使わない方法があればうれしいです

  • ListViewでサブアイテムが表示されない

    VC++2008にて、プロジェクト形式がWindowsエクスプローラの MFCアプリケーションにてプログラムを作成しています。 ListViewにて、InsertColumn、InsertItem、SetItemTextを 行い、カラムと項目のデータ設定をしているのですが、 ListViewを詳細表示にすると、設定したサブアイテムが 表示されない場合があります。 InsertItemで設定した文字列は、設定した分だけ、 左端にキチンと表示されているのですが、 それ以降のサブアイテムについては、表示されている行もあれば 表示されていない行もあります。 1行に複数のサブアイテムを設定しているのですが、 表示されている場合は、サブアイテム全てが表示されており、 表示されていない場合は、サブアイテム全てが表示されていません。 デバッグで追う限り、データ設定自体は問題なく、 表示される行と、されない行について、 差異を探してみましたが、別段、違ったことはしていません。 ListViewについては、PreCreateWindowにて cs.style |= TVS_SHOWSELALWAYS; cs.style |= LVS_SINGLESEL; cs.style &= ~LVS_TYPEMASK; 上記、設定を行っています。 この他に、何か設定が足りなくて、表示されていないのでしょうか?

  • 2つのテーブルのデータをそれぞれリストに表示して選択したい

    VB6で以下のようなプログラムを作っています。 Aテーブルのデータを一覧表示するリスト1とBテーブルのデータを表示する リスト2があって、リスト1で選んだデータとリスト2で選んだデータの 組み合わせによって、エクセルにデータを出力します。 ・MS-ACCESSのmdbのテーブルからデータを表示(DAOを使っているようです。) ・リストは表示のみ、入力はなし ・複数行選択あり ・初期表示時に、あらかじめあるデータを選択状態にして表示 ヘルプをあちこち見た結果、LISTVIEWが近いかなと思って、やってみている のですが、リスト1で選択しても、リスト2を選択すると、リスト1の反転 が消えてしまうんです。両方選択状態にしておきたいんですけど、LISTVIEW じゃできないんでしょうか?ただ、業務で作成されているコントロールなども 使っているので、その影響がないとも言えません。なので「できるはずだ!」 という回答でも構いません。 あと、リストに入力できてしまいます。選択はできるけど、入力は不可という 状態にできるのでしょうか? ヘルプをあちこち見てみたんですけど、ヘルプ自体がよくわからなくて。。。 アドバイスよろしくお願いします。

  • タスク→コントロールパネルに戻るとアイコンが詳細表示になってしまいます。

    すみません、ちょっと教えてください。OSはWinMeです。  コントロールパネル → タスク → コントロールパネル とすると、アイコンの表示が、”詳細”表示なってしまいます。 コントロールパネルの画面で、一旦、表示を”大きいアイコン”にして、フォルダオプションの表示タブで、   (1) ”すぺてのフォルダをリセット”をクリックしてOK   (2) ”現在のフォルダ設定を使用”をクリックしてOK  と、フォルダの表示設定を変更しても、またタスクの画面を表示させてからまたコントロールパネルに戻ると同じように”詳細”表示されてしまします。 ちょっと、おかしいのは、  コントロールパネル → タスク の時に、一瞬、タスクのアイコン類が”詳細”表示(0.5秒位)されてから、大きいアイコンでタスクの画面が表示されます。 これが原因じゃないかと思うのですが、その原因がわかりません。 ちょっと気持ち悪いので、宜しくお願いします。  

  • vb2008です。ListViewついてです。

    初心者です。説明に分かりにくい所もあるかと思いますがよろしくお願いします。 csvファイルを用いてListViewで一覧の作成をしています。 Using textPatser As New Microsoft.VisualBasic.FileIo.TextPatser("C:¥~¥.csv",System.Text.Encoding.GetEncoding("UTF-8")) textPatser.TextFiledType=FileIo.FiledType.Delimited textPatser.HasfildsEnclosedInQuotes=True textPatser.SetDelimitedrs(",") ListView1.Items.Clear() While Not textPatser.EndOfData Dim fields As String() = textPatser.ReadFields() ListView1.Items.Add(New ListViewItem(fields)) End while End Using のコードにてListViewの一覧に入力しました。 一覧に国名の列があり0001,0002,0003....と入力しています。 別のcsvファイルに数字のコードと国名 国コード,国名 0001,日本 0002,アメリカ 0003,フランス と作りました。これを認識、0001の所は、日本と表示出来るようにしたいのですが 仕方を知りたいです。よろしくお願いします。

専門家に質問してみよう