0

以下のコードを参照してください。Microsoft vs 2008 が提供する関数を呼び出してグリッド ビュー データを並べ替えようとしていますが、ページングは​​うまく行われていますが、並べ替えプロセスが機能していません。次のコードのどこを変更すればよいか教えてください。更新された罰則のグリッド表示ですが、罰則の更新に関して問題はありますか?

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    GridView1.PageIndex = e.NewPageIndex;
    showData();
}
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
    try
    {
        SqlCommand cmd = new SqlCommand("showData", con);
        cmd.CommandType = CommandType.StoredProcedure;
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        DataSet ds = new DataSet();
        da.Fill(ds);
        if (ds.Tables[0] != null)
        {

            ds.Tables[0].DefaultView.Sort = e.SortExpression + " " + sortType(e.SortDirection);
            GridView1.DataSource = ds;
            GridView1.DataBind();
        }
    }
    catch (Exception ex)
    {
        Label1.Text = ex.ToString();
    }
}


private string sortType(SortDirection sortDirection)
{
    string newSortDirection = String.Empty;

    switch (sortDirection)
    {
        case SortDirection.Ascending:
            newSortDirection = "DESC";
            break;

        case SortDirection.Descending:
            newSortDirection = "ASC";
            break;
    }

    return newSortDirection;
}
4

3 に答える 3

0

データセットオブジェクトではなく、gridviewのDataSourceプロパティにdataviewを割り当てる必要があると思います。このような

 DataTable dt = ds.Tables[0];

 DataView dv = new DataView(dt); 
 dv.Sort = e.SortExpression + " " + sortType(e.SortDirection);
 GridView1.DataSource = dv;
 GridView1.DataBind();
于 2012-05-22T05:12:18.077 に答える
-1

のデフォルト値がありませんnewSortDirection

private string sortType(SortDirection sortDirection)
{
    string newSortDirection = "ASC";

    switch (sortDirection)
    {
        case SortDirection.Ascending:
            newSortDirection = "DESC";
            break;

        case SortDirection.Descending:
            newSortDirection = "ASC";
            break;
    }

    return newSortDirection;
}
于 2012-05-22T05:17:51.603 に答える