標準の ASP.NET Gridview では、ユーザーが自由に列を並べ替えることができますか?
もしそうなら、どうすればこの機能を実装できますか? ありがとう。
例: 私のグリッドビューには 3 つの列 A、B、C があります。ユーザー 1 は、B、C、A のように配置することを好みます。ユーザー 2 は C、A、B などを好みます。この機能がサポートされている場合、ユーザーが列ヘッダーを希望の位置にドラッグできるようにしたいと思います。
ASP.NET Gridview
サーバーへの往復を行い、データ ソースを変更しない限り、標準では列の順序付けはサポートされていません。
自分で機能を実装するか、 などのサードパーティ フレームワークを検討する必要がありますTelerik's RadControls for ASP.NET AJAX
。ここで実際の例を参照してください。
注意: 私はこれを実行しませんでしたが、このブログでは、page_init でのデータ テーブル (おそらくグリッド ビューのデータソース) の列の順序付けについて言及しており、バインディングはグリッド ビューの列の順序付けを処理する必要があります。すべて非同期の場合は、会話が長くなるだけだと思います
グリッドビューにバインドするデータテーブルとしてデータソースを取得し、次のようにユーザー列の順序に従って新しいデータテーブルを作成します
DataTable SourceTable = ds.Table[0];
DataTable table1 = new DataTable("Employee");
\\ take user choice order in array and use loop to create column as per array
\\ Below is order your column you can also change this order according to your login
\\ put your login here to arrange column order
// this loop will create column according to user choice
foreach(string row In USerChoiceArray)
{
table1.Columns.Add(row);
}
table1.Rows.Add(column value from source data table, 1);
table1.Rows.Add(column value from source data table, 2);
これで、ユーザーの選択に従ってデータ テーブルが作成され、このデータ テーブルが次のようにグリッド ビューにバインドされました。
gridview.DataScource = table1 ;
gridview.DataBind();