• 締切済み

vb.netにてgridviewのソート

vb.netにてgridviewのソートについてアドバイスをお願いいたします。 webページにてgridviewを使用しDBの内容を表示しております。 gridviewにテンプレートフィールドとしてチェックボックスを追加し、すでに登録されている(別DB内に格納)しているものにはチェックをつけております。 現在、マスタとなるDBから読み込んだ並びで表示されているところを チェックボックスがTRUEの行を昇順にて表示させることは可能でしょうか?

noname#161348
noname#161348

みんなの回答

noname#259269
noname#259269
回答No.1

可能です。 1.画面に初期表示する段階で、DBから取得したデータを空の DataTable にコピーし、チェックボックスに対応する列を追加。 2.1.の DataTable から DataView を作って GridView にバインド 3.PostBack したタイミングで、画面のチェックボックスの値を、1.の DataTable に格納(Check ON=1, Check OFF = 0 など)。 4.3.の DataTable から DataView を作って(この時ソート順を指定)、GridView にバインド 試しにこんな感じのサンプルを組んでから改良していくとよいでしょう。 DataView については調べてください。 http://msdn.microsoft.com/ja-jp/library/system.data.dataview%28v=vs.80%29.aspx

noname#161348
質問者

お礼

アドバイスありがとうございます。 段階を踏む以外にやはりテンプレートフィールドの値をキーとしてソートすることはできないのでしょうか?

関連するQ&A

  • ASP.NET 2.0(C#) GridViewのソート機能をデフォルトで降順にしたい

    GridViewコントロールで「並べ替えを有効」にすると、各フィールドごとに、ヘッダーのリンクをクリックするたびに昇順→降順でソートできるようになりますが、これをあるフィールドだけ、降順→昇順にすることはできないでしょうか? GridView1のSortingイベントで protected void GridView1_Sorting(object sender, GridViewSortEventArgs e) { //hogeフィールドだけデフォルトで降順にしたい if (e.SortExpression == "hoge") { if (e.SortDirection == SortDirection.Ascending) e.SortDirection = SortDirection.Descending; else e.SortDirection = SortDirection.Ascending; } } などとしてみたのですが、これでは常に降順になってしまいます。 よろしくお願いします。

  • ASP.NET GridView につきまして

    ASP.NET GridView につきまして質問があります。 よろしくお願いいたします。 SQL Server にあるデータを使用して、GridView を作成しております。 あるBit型フィールドがあるのですが、NULLの場合は 無、1の場合には 有 と GridView内に表示させたいのですが、GridViewの項目はバインドされているフィールドしか表示させることができないのでしょうか? 非連結の項目を追加して どこかのプロパティに =IIf([CheckChoku]=True,"有","無") を記述すれば、表示できるような方法を探しています。 すみません ASP.Net は始めたばかりなので、VB や Access のような操作が応用できればなと思っております。もしくは SQL のデータソースを作成するときに上記を埋め込んでソースにしないと実現できないものでしょうか? ご教授いただければ 大変助かります。 よろしくお願いいたします。

  • Access テキストデータのソートについて

    Accessでのテキストデータのソートの仕様で悩んでます。 例を挙げると・・・ テキスト型のフィールドに対し以下のようなデータを入力します。 フィールド1 9-1 9-001 9-0001 90-1 90-001 900-1 900-11 9000-1 9001-1 90000-1 ここでフィールド1を昇順でソートをすると 90000-1 9-0001 90-001 9000-1 9-001 900-1 900-11 9001-1 90-1 9-1 という順になってしまい、並び方に一貫性が無いように思えます。 なぜこのような並びになってしまうのか? お判りになられる方、いらっしゃいませんか??

  • VB 2005 データテーブルのソートについて

    恐れ入ります。 VB 2005 初心者です。 さっそく質問させていただきます。 VB 2005にて、SQL Server 2003を利用し、 とあるシステムを作成しています。 その中で、DBより取得したデータを、 DataTableのdatatblという変数に格納し、 さらにそのdatatblより、とある条件にて値が欲しくなったので、 dr = datatbl.Select("clm = " & strData & " AND clm2 = '0'") のようにし、DataRowのdrという変数につっこんでます。 ここで、ソートによる並んだデータとして値が必要になりました。 DBで取得し、条件でDataRowにつっこんだ後に、データを ソートすることは可能でしょうか? 可能であれば、やり方を教えていただけると幸いです。 宜しくお願いいたします。

  • ASP.NETのGridViewでNULLの場合にチェックボックスにしたい

    ASP.net(VB)とSQLSERVERで開発しているのですが、SQLSERVERでストアドプロシージャでSELECT文を発行するSQLを書きました。 1)そのデータをGridViewで表示したのですが、列がNULLの場合にチェックボックスを表示したい。←これが分からない 2)チェックボックスがonの状態で実行ボタンが押下された場合に別のストアドプロシージャを走らせてNULLを「確認済」としたい。 (例) チェック   |名前 |メールアドレス 確認済    |Aさん|aaaa@test.co.jp □(チェックボックス) |Bさん|bbbb@test.co.jp [実行ボタン] このようにこのようなことはGridViewで可能なのでしょうか? それとも、HTMLコントロールを使用して一行ずつ書きこんでいくしかないのでしょうか? 返答をお待ちしております。

  • GridViewのEditTemplate

    すみません。改めて質問させていただきます。 GridViewのEditTemplateにDropDownListが配置されています。 更新したときに、そのDropDownListの値を取得する方法をご教授頂きたいです。 言語はVBです。以下のコードを書きましたが取得できません(Updatingイベントのとき)↓ Protected Sub GridView1_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GridView1.RowUpdating MsgBox(GridView1.Rows(e.RowIndex).ToString) End Sub とりあえずメッセージボックスにドロップダウンリストの値を表示したいです。

  • GridViewにグループ化して表示させたい

    ASP.NETの勉強のためにチームのメンバーを管理する ページを作っています。 VisualWebDeveloper2008のVBで作っています。 DBにはチーム名とチームの所属メンバーとメンバー一覧の3テーブルがあります。 これらをJOINしてGridViewに表示させたいと思います。 検索結果ではAチームに3人いる場合、3レコード取得されます。 画面に表示させるときには1レコードでメンバーの列だけ3行にしたいと思います。 Templateを指定するとできそうな気がするのですが、メンバーを検索するデータソースの条件にその行のチームコードを指定する方法が分かりません。 よろしくお願いします。

  • ASP.Net GridView 非連結フィールド

    大変お世話になっております。 GirdView 3番目のセルをテンプレートフィールドにして そこに非連結のテキストボックスを設置しております。 各行の非連結のテキストボックスに数字を入力して ボタンクリックにより、その値を取得したいのですが、 下記のプログラムでは、空白が返ってきてしまいます。 非連結のテキストボックスの値を取得するには下記では ダメなのでしょうか? ご指摘などございましたら、何卒ご助言いただけますと 嬉しい限りでございます。   For I = 0 To Me.GridView1.Rows.Count - 1     MsgBox(DirectCast(Me.GridView1.Rows(I).Controls(2), DataControlFieldCell).Text)   Next

  • GridViewの項目編集(初歩)

    いわゆるレガシー言語専門の技術者です。 事情があって、ASP.NETとVisualStudio2008(C#)でWebアプリを知人から頼まれて作っています。 クライアント/サーバ型のシステム開発歴は長いのですが、Web系は全くと言って良いほど経験がありません(個人商店のホームページを作ったくらいです)。 要件は以下のようになります。 検索条件を入力 →DBのマスタ検索 →対象データをGridViewに一覧表示 →項目を直接編集  ※解説サイトによくある、GridViewにボタンが配置してあって、ボタン押下で編集モードに移行する動きはNGです。あくまでも直接編集できなければいけません。 →入力後、更新ボタン押下により、画面情報でDB一括更新 この、GridViewの項目を直接編集するには、何というコントロールを使い、データベースと連動させるにはどうすれば良いのかが、さっぱりわかりません。 自力で頑張ってみたのですが、DBの値をGridViewに表示するには、asp:BoundField を使い、DataField にDBの項目名を指定すれば「表示」はされるところまでは確認できました。 ただ、これだと「編集」が出来ない...どうやら、asp:TemplateField というものを使うようだが、DBとバインドさせる方法は?編集可能にするには? ネットで色々と調べたのですが、(理解力が低いせいもあり)そのものズバリな表現で説明しているサイトは殆どなく、頭がパニックで力が尽きてしまいそうです。 私はWeb開発には向いていないのかも知れませんが、諸事情により、今回は何としてもやり遂げないといけません。 どなたか助けてください、よろしくお願いします。

  • GridViewのButtonフィールドの使い方

    環境:visual web develper 2008 Express Edition GridViewタスク→列の編集→フィールド→「使用できるフィールド」からButtonFieldを選択→Button Typeを「Button」に設定、Textは「削除」→「OK」を押す 以上の流れで削除ボタンの列がGridView内に表示されますが、「削除ボタン」を押しても何も起こりません。 削除ボタンをクリックされたときにこちらが決めた処理を行わせるにはどうすればよいでしょうか? ツールボックスのButtonですと、 Protected Sub sakujyo_Click(ByVal sender As Object, ByVal e As EventArgs) Handles bookNameSyoujyun.Click    End Sub でボタン(sakujyoボタン)を押したときの処理がかけますが、このような書き方はできないのでしょうか? 現状だとGridView内にあるボタンのIDがわからないため、○○○_Clickの○の部分に何を書けばいいのかわかりません。 ご助言よろしくお願いいたします。。

専門家に質問してみよう