CodeGo.net>如何使用下拉列表排序GridView

我要指的具体例子是这个网站

http://www.iamextreme.net/category.php?CategoryId=1&SubCategoryId=0&SortBy=name

注意“排序依据”下拉列表.基本上我想根据价格,名称,受欢迎程度对产品进行分类?

我是否必须重新查询数据库并再次检索gridview中的排序数据,还是应该已经对gridview中已经存在的项目进行排序?

我试图这样做,但是它的方法是错误的,基本上我试图在页面加载事件中重新填充数据,这给了错误.

现在正确的方法是什么.

解决方法:

对于DropDownList的SelectIndexChanged事件,您可能会有类似的内容

protected void DropDownList1_SelectIndexChanged(object sender, EventArgs e)
        {
            gvSorting.Sort(DropDownList1.SelectedValue, SortDirection.Ascending);
        }

并处理GridView的Sorting事件

protected void gvSorting_Sorting(object sender, GridViewSortEventArgs e)
{
    DataTable dtSortTable = gvSorting.DataSource as DataTable;
    if (dtSortTable != null)
    {
        DataView dvSortedView = new DataView(dtSortTable);
        dvSortedView.Sort = e.SortExpression + " " + getSortDirectionString(e.SortDirection);
        gvSorting.DataSource = dvSortedView;
        gvSorting.DataBind();
    }
}

private static string getSortDirectionString(SortDirection sortDireciton)
{
    string newSortDirection = String.Empty;
    if (sortDireciton == SortDirection.Ascending)
    {
        newSortDirection = "ASC";
    }
    else
    {
        newSortDirection = "DESC";
    }
    return newSortDirection;
}
上一篇:MySQL单表SELECT查询ORDER BY导致FILESORT


下一篇:【Tyvj】1473校门外的树3 线段树/树状数组 <区间修改+单点访问>