0

请参阅下面的代码,我尝试通过调用 Microsoft vs 2008 提供的函数对 Grid 视图数据进行排序,但分页做得很好但排序过程不起作用,告诉我应该在哪里更改以下代码,是的,我把更新刑罚中的网格视图,更新刑罚有问题吗?

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

我认为您必须将 dataview 分配给 gridview 的 DataSource 属性,而不是数据集对象。像这样

 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 回答