在ASP.NET中使用ObjectDataSource数据控件和GridView显示数据(2)

接上回书说,我们实现了基本的显示和排序.那么今天就来做做查询和分页.

首先先做通过传递普通参数的形式来实现条件查询的.这里仅仅做个演示.

我们要通条件查询那就需要修改我们原来的查询方法了.

        [DataObjectMethod(DataObjectMethodType.Select)]
        public static List<UserInfo> GetUserInfoList(string name, string sort)
        {
           ........
        }

我们这里加了一个参数用来传入要查询的用户名称.

但是这里一定要注意.当你修改了后面的方法后一定要做一件事情.

image

那就是配置数据源

因为我们修改后面的方法参数所以这里也变化了如果不重新配置数据源就会报一个错误那就是

image

当你重新配置数据源的时候就可以给你的参数设置值的来源了

image

这里我给name参数设置了值的来源为控件类型.控件名为txt_name,这样你就可以通过传递的值来改变你返回集合的内容了.而且这里因为我们指定数据来源是txt_name所以当你点击查询按钮的时候,他会自动重新绑定GridView控件.也就是你不必再执行GridView的DataBind方法了

上面已经实现了一点点效果了那最后就实现我们这次要最终想要的结果吧.

在传递值的时候会发现如果传递多个查询条件的时候参数还是比较多的.而且我们本来是有那个UserInfo类的,那我们干脆把要查询的条件内容放到一个对象里传过来好了,那样还能通过他的属性Set方法来验证一下.

public static List<UserInfo> GetUserInfoList(UserInfo info,int start,int max, string sort)
{
	......
}

那么我们捎带的就把分页也做了吧.

根据我们的要求就把原来的方法改写成↑这样的了.传递了一个对象和分页的两个参数

在这里我们可以和上次说到的排序那样来在ObjectDataSource中设置这两个参数他们分别是

StartRowParameterName和MaximumRowsParamterName

但是我这里使用通过在ObjectDataSource的Selecting事件中给这个赋值,这样就直接可以使用第三方的分页控件了

        protected void ObjectDataSource1_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
        {
            Models.UserInfo info = new Models.UserInfo();
            info.uname = txt_name.Text;
            e.InputParameters["info"] = info;

            e.InputParameters["start"]=传入的值;
            e.InputParameters["max"]=传入的值;
        }

这样我们就可以将你自己赋值的info对象和从分页控件得来的start和max值传入到BLL中的Select方法中了.

这里讲述了如何通过事件给已订好的方法动态的传递你的值.

这里需要注意:因为现在的参数是后期才赋值的所以你必须在你的查询按钮中添加一句话

        protected void btn_query_Click(object sender, EventArgs e)
        {
            GridView1.DataBind();//这里必须重新绑定一下GridView
        }

转载于:https://www.cnblogs.com/Lileltp/archive/2008/09/05/1284764.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值