2

そのアルン。今回は、ASP.Net で並べ替えの問題が発生しました。最初のクリックでは、降順は正常に機能しますが、2 回目のクリックでは昇順は再度実行されません。まだ降順です。グリッドビューのコンテンツを表示するために Tableadapter を使用しています。コードを見直して、私が見逃したところを修正してください。

    protected void gv1_Sorting(object sender, GridViewSortEventArgs e)
    {
        string sdir = e.SortDirection == SortDirection.Ascending ? "DESC" : "ASC";
        DataView dv = new DataView(ds2.AllocationPending(ClientLoggedIn.Text));
        dv.Sort = e.SortExpression + " " + sdir;
        gv1.DataSource = dv;
        gv1.DataBind();
    }

また、説明してください - Dataview なしで並べ替えを適用する他の方法はありますか。

ありがとうございました 。

4

2 に答える 2

1
 protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
    {      
        DataTable dtSortTable = GridView1.DataSource as DataTable;

        if (dtSortTable != null)
        {
            DataView dvSortedView = new DataView(dtSortTable);

            dvSortedView.Sort = e.SortExpression + "" + getSortDirectionString(e.SortDirection);

            GridView1.DataSource = dvSortedView;
            GridView1.DataBind();
        }
    }

private string getSortDirectionString(SortDirection sortDirection)
    {
        string newSortDirection = String.Empty;
        if(sortDirection== SortDirection.Ascending)
        {
            newSortDirection = "DESC";
        }
        else
        {
            newSortDirection = "ASC";
        }
        return newSortDirection;
}

グリッドビューをソートするには、このコードを試してください

于 2013-05-07T10:08:31.590 に答える