asp.netのヘッダーをクリックして、グリッドビューでデータを並べ替えるのを手伝ってください。データをグリッドビューにバインドするためにlinqを使用しました。私を助けてください。
質問する
1203 次
3 に答える
0
グリッドビューのデータソースを直接選択できます。これは、自動フォーマットのすぐ下にあるグリッドビュータスクで、データソースを選択した後、並べ替え、ページング、および選択も含まれるオプションが提供され、すべての見出しをクリックすると、データが並べ替えられます。それに
于 2013-03-24T10:59:00.757 に答える
0
とても簡単にできます。
したがって、サーバー側でデータソースを割り当てる GridView があるとします。
GridView_Sorting
以下のようなイベントを利用できます。
まず、現在適用されている並べ替えをどこかに保存します。昇順または降順でソートする必要があるかどうかを知る必要があるためです。以下のようなもの。
public SortDirection CurrentSortDirection
{
get
{
if (ViewState["sortDirection"] == null)
ViewState["sortDirection"] = SortDirection.Ascending;
return (SortDirection) ViewState["sortDirection"];
}
set { ViewState["sortDirection"] = value; }
}
sorting
次に、GridViewのイベント内でこのプロパティを使用します。
protected void GridView_Sorting(object sender, GridViewSortEventArgs e)
{
if (CurrentSortDirection== SortDirection.Ascending)
{
CurrentSortDirection = SortDirection.Descending;
var myDataSource = GetDataThroughLinq()
.OrderByDescending(s=>s.Id)
.ToList();
GridView1.DataSource = myDataSource;
GridView1.DataBind();
}
else
{
CurrentSortDirection = SortDirection.Ascending;
var myDataSource = GetDataThroughLinq()
.OrderBy(s=>s.Id)
.ToList();
GridView1.DataSource = myDataSource;
GridView1.DataBind();
}
}
于 2013-03-24T07:06:10.243 に答える
0
これをソートしてみてください.....
protected void RadgvData_SortCommand(object sender, GridSortCommandEventArgs e)
{
GridTableView tableView = e.Item.OwnerTableView;
e.Canceled = true;
GridSortExpression expression = new GridSortExpression();
expression.FieldName = e.SortExpression;
if (tableView.SortExpressions.Count == 0 || tableView.SortExpressions[0].FieldName != e.SortExpression)
{
expression.SortOrder = GridSortOrder.Descending;
}
else if (tableView.SortExpressions[0].SortOrder == GridSortOrder.Descending)
{
expression.SortOrder = GridSortOrder.Ascending;
}
else if (tableView.SortExpressions[0].SortOrder == GridSortOrder.Ascending)
{
expression.SortOrder = GridSortOrder.Descending;
}
tableView.SortExpressions.AddSortExpression(expression);
RadgvData.Rebind();
}
于 2013-04-16T09:33:38.927 に答える