我要指的具体例子是这个网站
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;
}