C# asp.net gridview搜索和排序交互
我对asp gridview有点小问题 我在gridview中添加了两个文本框和一个ddl加上一个按钮,以便搜索正常工作的gridview。以下是我的搜索按钮代码:C# asp.net gridview搜索和排序交互,c#,asp.net,gridview,C#,Asp.net,Gridview,我对asp gridview有点小问题 我在gridview中添加了两个文本框和一个ddl加上一个按钮,以便搜索正常工作的gridview。以下是我的搜索按钮代码: protected void ButtonSearch_Click(object sender, EventArgs e) { string title = TextBoxSearchTitle.Text; string artist = TextBoxSearchArtist.Text;
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,我更希望在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();
}
}
你把GridView1\u排序和你的GridView链接了吗?是的,我链接了,否则它会抛出一个异常