[英]asp.net gridview search and sort interaction
我在使用asp gridview时遇到了一些问题。
我在gridview中添加了2个文本框和一个ddl以及一个按钮,以便搜索gridview,它工作正常。 这是我的搜索按钮代码:
protected void ButtonSearch_Click(object sender, EventArgs e)
{
string title = TextBoxSearchTitle.Text;
string artist = TextBoxSearchArtist.Text;
string genre = DDLSearch.SelectedValue;
if (genre == "Alle")
{
SqlDataSource1.FilterExpression = String.Format("Title LIKE '%{0}%' AND Artist LIKE '%{1}%'", title, artist);
}
else
{
SqlDataSource1.FilterExpression = String.Format("Title LIKE '%{0}%' AND Artist LIKE '%{1}%' AND Genre ='{2}'", title, artist, genre);
}
}
但是现在我的gridview中有一个内置的排序功能,该功能使用户可以按标题或艺术家对gridview进行排序。 如果我现在搜索标题并说出5条结果,并且在按艺术家进行排序之后,内置的排序功能会将sqldatasource中的所有项目加载到gridview中,我希望可以对结果列表进行排序。
有没有办法解决这个问题?
提前致谢!
基本上,您需要覆盖排序,而不是在对原始数据进行排序时,需要从当前显示的网格传递数据。
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();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.