http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.sorting.aspx
この記事では、最初にデータテーブルを作成し、次にそれからグリッドビューを作成して、並べ替えを支援します。私の苦境は少し異なります。
Page_Load でデータソースを ArrayList に設定し、バインドする Gridview があります。
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
this.GridView1.DataSource = RequestManager.Instance.GetAllRequests();
this.GridView1.DataBind();
}
}
この GridView を並べ替えたいので、aspx ページで、AllowSorting="true" と OnSorting="GridView1_Sorting" を設定します。ここまでは順調ですね。BoundFields に SortExpressions が設定されており、それをクリックすると、_Sorting イベントがトリガーされることがわかります。
これはポストバック操作であるため、グリッドビューのデータソースを単純に DataTable にキャストして並べ替えることはできません。ViewState への保存はオプションですが、その方法がわかりません。
DataTable が利用できないことを除いて、このページの簡単なソリューションを使用したいと思います。ご覧いただきありがとうございます。