GridView排序

摘要:
显然,我们需要在Bll层和DAL层中添加带有参数的GetAllBooks方法,并且参数名称只能是SortExpression=“”){sql+=“orderby”+SortExpression;}returnGetPartialBooksBySql;}BLL层:public staticList<Book>GetAllBooks{returnBookService.GetAllBooks;}步骤4:开始分页和排序步骤5:我们还可以自定义排序。
该例子以MyBookShop项目为基础,给图书列表增加一个排序功能。效果如下:

GridView排序第1张

第一步:在页面上拖入一个GridView控件,绑定其数据源;
GridView排序第2张
GridView保留Id,Title,Author,PublishDate这四个字段,ObjectDataSource数据源控件的TypeName属性为BLL.BookManager,SelectMethod属性为GetAllBooks()。源码如下:

<asp:ObjectDataSource runat="server" SelectMethod="GetAllBooks"
            TypeName="MyBookShop.BLL.BookManager"></asp:ObjectDataSource>
第二步:您观察到GridView中每个字段都有一个SortExpression属性吗?这个属性就是用来进行排序的,当你启动排序后点击标头就会将这个属性值传递给ObjectDataSource控件,我们只需要在ObjectDataSource控件中添加一个属性接受这个值就可以了。所以在ObjectDataSource控件中添加:
SortParameterName="SortExpression"

第三步:现在你可以浏览一下,看看发生什么情况。

GridView排序第3张

现在你能猜到排序是怎么工作的吧,即把SortExpression的属性值作为一个参数传递给Bll层中的GetAllBooks方法。显然,我们现在需要在Bll层和DAL层中增加一个带参数的GetAllBooks方法,而且参数名称只能是SortExpression。 首先是DAL层:

public static IList<Book> GetAllBooks(string SortExpression)
        {
            string sql = "select * from Books";
            if (SortExpression != "")
            {
                sql += " order by " + SortExpression;
            }

            return GetPartialBooksBySql(sql);
        }

   BLL层:

public static IList<Book> GetAllBooks(string SortExpression)
        {
            return BookService.GetAllBooks(SortExpression);
        }
第四步:启动分页和排序

GridView排序第4张

第五步:我们还可以进行自定义排序。添加一个DropDownList控件,将4个字段值添加到DropDownList控件的列表中,启动AutoPostBack。代码:

       <asp:DropDownList runat="server" AutoPostBack="True">
            <asp:ListItem>Id</asp:ListItem>
            <asp:ListItem>Title</asp:ListItem>
            <asp:ListItem>Author</asp:ListItem>
            <asp:ListItem>PublishDate</asp:ListItem>
        </asp:DropDownList>


最后添加DropDownList控件的SelectedIndexChanged事件代码:

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

免责声明:文章转载自《GridView排序》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇爬虫(十六):scrapy爬取知乎用户信息OpenCV将两图片进行混合,达到两张图片合并成一张图片的效果下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

asp.net core 系列 3 项目实战之:NetCore 的 Web 应用程序(参考自:Microsoft教程)

十年河东,十年河西,莫欺少年穷 学无止境,精益求精 概述:此教程介绍了生成 Razor Pages Web 应用的基础知识。具体分为如下部分 创建 Razor 页面 Web 应用 向 Razor 页面应用添加模型 基架(生成)Razor 页面 使用数据库 更新 Razor 页面 添加搜索 添加新字段 添加验证 首先,我们启用VS新建一个项目: 本篇主...

网页小偷程序ASP.net

以前写过一个网页小偷程序,是ASP版的http://aowind.cnblogs.com/archive/2005/07/16/193858.html今天看到.net里的WEBCLIENT,试试了它的方法等,发现很好用,就用它改成了以前ASP版的网页小偷,写成ASP.net版的了,嘿嘿! Imports System.netImports System.io...

CheckBox实现跨页面多选

在很多程序中需要使用CheckBox的跨页面复选功能,本例实现了GridView多页复选功能SelectMultiPages.aspx  1<%@ Page Language="C#" AutoEventWireup="true" CodeFile="SelectMultiPages.aspx.cs" 2    Inherits="SelectMul...

Windows2003 IIS6.0支持32位和64位两种模式的设置方法

IIS 6.0 可支持 32 位和 64 位两种模式。但是,IIS 6.0 不支持在 64 位版本的 Windows 上同时运行这两种模式。ASP.NET 1.1 只在 32 位模式下运行。而 ASP.NET 2.0 在 32 位或 64 位模式下都可以运行。因此,如果想要同时运行 ASP.NET 1.1 和 ASP.NET 2.0,必须在 32 位模式下...

Asp.net中使用ActiveX控件

在asp.net项目项目中,使用了一个第三方的没有签名的ActiveX控件,代码如下: <SCRIPT LANGUAGE="JavaScript"> function Print(){printClass.PrintBar("0405-0300-0056<@>大客车(柯斯达)<@>车辆<@>2010年7月21...

设置GridView表头的背景图片

方法一: protected void Page_Load(object sender, EventArgs e)    {       //UserGrid.Attributes.Add("bordercolor", "#a7b8d9");        UserGrid.HeaderRow.Attributes.Add("style", "backgr...