博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转] asp.net中repeater按钮传值与分页
阅读量:4509 次
发布时间:2019-06-08

本文共 1879 字,大约阅读时间需要 6 分钟。

我想要在repeater中每绑定一行数据时,都对应一个按钮,其实也就是做后台管理,但我在按键的执行事件中却总是得不到要传递的值,开始我是这样传的:

CommandArgument="<%#Eval('adminID') %>"//这一行是传值

CommandName="upd"//因为有两个按钮,所以会有这一行

当然,这都是按钮的属性,但这样执行时总是报错,实在不知其中意思了,把上面的代码改为如下:

CommandArgument='<%#Eval("adminID") %>'

CommandName="upd"

一切正常,郁闷~~~~~~~~~

当然,这一小篇的正式内容当然是repeater分页了,其实reapeater分页在前台的代码并不多,只是增加了几个按钮:首页、上一页、下一页、未页,对了还有(当前页/总页);对了,这里用的方法是asp.net集成的方法(前几天去面试,有一美女程序员问我编码实现数据分页,整理思路,感觉不难,如果手头的活忙完了,也可以一试)。

首先:后台对repeater绑定数据源上就有很大的差别:

主义的数据源不再是datasource而是:

        public static PagedDataSource pds = new PagedDataSource();//把它设置为类的属性,方便在类内调用

    public void bind(string str,int page)//做成方法为了方便点击   “首页”等按钮时调用

    {

        pds.DataSource = BLL.adminLogin.getdt(str).DefaultView;//为pds绑定数据源

        pds.AllowPaging = true;   //启用分页
        pds.PageSize = 18;    //每页显示记录条数
        pds.CurrentPageIndex = page;//设置第page页为起始页

        Repeater1.DataSource = pds; //最后再把数据源绑定给repeater
        Repeater1.DataBind();

        if (page == 0)   //决定“首页”等各个按钮的可用性,假如现在在第一页,那么“首页”和“上一页”一定不可以使用,不是吗??

        {
            display();
            Button1.Enabled = false;
            Button2.Enabled = false;
        }
        else if (page == (pds.PageCount - 1))
        {
            display();
            Button3.Enabled = false;
            Button4.Enabled = false;
        }
        else
        { display(); }

   }

   那么 ,在按钮的事件中,我就会很省力气了

    protected void Button1_Click(object sender, EventArgs e)

    {
        //这是首页
        bind(sql, 0);
        display();
        Button1.Enabled = false;
        Button2.Enabled = false;
    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        //这是上一页
        bind(sql, pds.CurrentPageIndex - 1);
    }
    protected void Button3_Click(object sender, EventArgs e)
    {
        //这是下一页
        bind(sql, pds.CurrentPageIndex + 1);
    }
    protected void Button4_Click(object sender, EventArgs e)
    {
        //这是未页
        bind(sql, pds.PageCount - 1);
    }
    public void display() //这个方法使所以的按钮可用
    {
        Button1.Enabled = true;
        Button2.Enabled = true;
        Button3.Enabled = true;
        Button4.Enabled = true;
    }

然后,没有然后了,一切搞定,需要补充的就是,那几个按钮的位置并没有要求,只要觉得看上去漂亮,那么,什么地方都可以放的,呵呵 ~~~~~

转载于:https://www.cnblogs.com/ishibin/archive/2012/02/22/2362602.html

你可能感兴趣的文章
云风协程库coroutine源码分析
查看>>
【漫谈数据仓库】 如何优雅地设计数据分层 ODS DW DM层级
查看>>
POJ - 2559 && POJ - 3494 (单调栈)
查看>>
POJ - 2796 Feel Good (单调栈)
查看>>
2019牛客暑期多校训练营(第一场合集)
查看>>
2019牛客暑期多校训练营(第二场合集)
查看>>
2019牛客暑期多校训练营(第四场合集)
查看>>
树的直径
查看>>
随机面试题
查看>>
git
查看>>
creat-react-app http升级为https出现的问题
查看>>
ES6 symbol
查看>>
vue 坑
查看>>
js手写call函数
查看>>
Object.prototype.toString.call(obj) 为什么有用以及疑惑点
查看>>
小程序生成二维码,海报
查看>>
.NET Core 原生动态代理
查看>>
.net core 拦截器的使用
查看>>
sqlyog 下载
查看>>
动态WebAPI实现原理
查看>>