繁体   English   中英

asp.net gridview搜索和排序交互

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM