今天做DataList分页的时候,突然想把分页控件写在FooterTemplate模板里面,弄了很久都访问不到控件,终于发现问题所在,以下是访问FooterTemplate里控件的方法:

<FooterTemplate>
        <div style="width:100%; text-align:right; margin-top:15px;">
                第<asp:Label ID="lblPageIndex" runat="server"></asp:Label>/
                 <asp:Label ID="lblPageCount" runat="server"></asp:Label>页&nbsp;
                 <asp:LinkButton ID="linkFirst" CommandName="First" runat="server">首页</asp:LinkButton>
                 <asp:LinkButton ID="linkPrev" CommandName="Prev" runat="server">上一页</asp:LinkButton>
                 <asp:LinkButton ID="linkNext" CommandName="Next" runat="server">下一页</asp:LinkButton>
                 <asp:LinkButton ID="linkLast" CommandName="Last" runat="server">尾页</asp:LinkButton>
          </div>
 </FooterTemplate>

后台代码:====================================================================

private int pageCount = 0;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            ViewState["PageIndex"] = 0;
            DataListBind();
        }
    }

public int Pager
    {
        get { return (int)ViewState["PageIndex"]; }
        set { ViewState["PageIndex"] = value; }
    }

private void DataListBind()
    {
        SqlConnection conn = new SqlConnection("data source=.;initial catalog=study;uid=sa;pwd=123456;");
        SqlCommand cmd = new SqlCommand("select * from productinfo", conn);
        SqlDataAdapter sda = new SqlDataAdapter(cmd);
        conn.Close();
        DataSet ds = new DataSet();
        sda.Fill(ds);
        DataList1.DataSource = ds;
        DataList1.DataKeyField = "pid";
        PagedDataSource pds = new PagedDataSource();
        DataView dv = new DataView(ds.Tables[0]);
        pds.DataSource = dv;
        pds.AllowPaging = true;
        pds.PageSize = 8;
        pageCount = pds.PageCount;
        pds.CurrentPageIndex = Pager;
        DataList1.DataSource = pds;

DataList1.RepeatColumns = 4;
        DataList1.DataBind();

// 下面的的代码一定要写在DataList1.DataBind();后面,不然会提示:索引超出界限

Label lblIndex = DataList1.Controls[DataList1.Controls.Count - 1].FindControl("lblPageIndex") as Label;
        Label lblCount = DataList1.Controls[DataList1.Controls.Count - 1].FindControl("lblPageCount") as Label;
        lblIndex.Text = (Pager + 1).ToString();
        lblCount.Text = pds.PageCount.ToString();
    }

protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
    {
        Label lblCount = DataList1.Controls[DataList1.Controls.Count - 1].FindControl("lblPageCount") as Label;
        switch (e.CommandName)
        {
            case "First" :
                Pager = 0;
                break;
            case "Prev":
                if (Pager>=1)
                {
                    Pager--;
                }
                 break;
            case "Next":
                 if (Pager < Convert.ToInt32(lblCount.Text)-1)
                 {
                     Pager++;
                 } 
                 break;
            case "Last":
                 Pager = Convert.ToInt32(lblCount.Text)-1;
                break;
        }
        DataListBind();
    }

转载于:https://www.cnblogs.com/ianunspace/p/3439380.html

DataList分页访问FooterTemplate模板里的控件相关推荐

  1. ASP.NET Repeater 头模板(HeaderTemplate)和FooterTemplate模板中查找控件

    //在HeaderTemplate中寻找Label1,默认为第0个 string s=((Label)Repeater1.Controls[0].FindControl("Label1&qu ...

  2. 给DataList分页有两个办法:1、自定义实现分页方法 2、用第三方控件(例如AspNetPager)

    给DataList分页有两个办法:1.自定义实现分页方法 2.用第三方控件(例如AspNetPager) 先介绍下如何自定义实现分页方法. 我的DataList分页方法的核心原理是利用PagedDat ...

  3. UWP 查找模板中的控件

    UWP 查找模板中的控件 原文:UWP 查找模板中的控件 这个标题我也不知道咋起,意思说一下你就明白. 1. 对官方控件的模板进行定制修改,以满足多样化需求,还有漂亮的UI 比如ListView,Gr ...

  4. [转] 使用模板自定义 WPF 控件

      [转] 使用模板自定义 WPF 控件                                                                                 ...

  5. mfc中在vector里添加控件类型的数据时出现C2248错误

    @mfc中在vector里添加控件类型的数据时出现C2248错误 这是我在.h文件中定义的2个容器 public:vector<CComboBox*> cbx;vector <CSt ...

  6. c#里什么控件可以播放视频(avi)?怎么实现

    Q: c#里什么控件可以播放视频(avi)?怎么实现 A: DirectShow MediaPlayer in C# 参考http://www.codeproject.com/cs/media/dir ...

  7. (转)一个带自定义分页,排序功能的DATAGRID控件(公开源码)

      因为项目需要,要弄个有这样功能的控件.要有自定意分页和排序的功能.在这个控件里面数据的绑定都是用DataView来实现,DataView放在Session里,如果大家有更灵活的方法可以留言给我.S ...

  8. html 素材表(模板、日期控件、对话框样式、 翻页 、框架)

    模板素材: 素材火:http://www.sucaihuo.com/ HTML 5 Tricks :http://www.html5tricks.com/ 日期控件: my97 DatePicker: ...

  9. dev里timeedit控件如何赋值_抽奖程序里的字节跳动模式和时长控制,让抽奖更有仪式感!...

    用excel的随机函数配合index函数可以很方便的实现从一组数据中随机抽取单个数据,常用于抽奖小程序.但若想让抽奖时数据跳动一段时间再出现最终的结果,就好像真正的抽奖一样,只用函数就不好实现了.今天 ...

最新文章

  1. 2018 区块链技术及应用峰会(BTA)·中国全日程新鲜出炉,更多精彩议题看不停
  2. python requests返回值为200 但是text无内容_爬取高清无版权美图
  3. html5和前端精要(5)-基于python脚本(2)
  4. 复旦大学计算机保研经历,#易保研#经验分享 | 个人经历分享,圆梦复旦大学!...
  5. linux mysql 实战_Linux平台MySQL多实例项目实施_MySQL数据库基础与项目实战06
  6. 生活中的数学 —— 几何
  7. 从前端开发者看待用友建筑云移动端单点登录与报错原因
  8. 移动开发 Jetpack Compose 组件布局
  9. QQ空间那年今日 人人过往的今天
  10. vue基础之v-for,key
  11. C#飞机大战程序设计
  12. Mac下的Homebrew安装与使用
  13. python读取xlsm文件_在保留VBA宏的同时使用熊猫读取和更新XLSM文件中的图纸 - python...
  14. html table td 居中显示,table td怎么垂直居中显示 详解table中如何隐藏td?
  15. mcldownload文件夹_—MCLDownload—文件夹
  16. 红与蓝:现代Webshell检测引擎免杀对抗与实践
  17. ajax java首字母检索_AJAX的拼音首字母查找对应中文的portlet
  18. 苹果x漫画脸_苹果最新iPhone SE:秒杀安卓的小屏旗舰
  19. GIS基础(1)空间参考
  20. Informix数据库优化

热门文章

  1. ie和谷歌在java中空格兼容,谷歌和IE浏览器的兼容性问题,相同的html结构竟然在两个浏览器不一样...
  2. 【ElasticSearch】Es 源码之 快照 RepositoriesModule RepositoriesService 源码解读
  3. Spring : @Qualifier 注解
  4. 网络:Server returned HTTP response code: 400(url中文)
  5. 【linux系统编程】剖析shell运行原理
  6. Java关键字:final,static,this,super
  7. 一文搞懂 ElasticSearch 集群,就它了!
  8. Spring 声明式事务应该怎么学?
  9. IntelliJ IDEA这样配置,代码效率嗖嗖的
  10. SpringBoot 操作 Redis的各种实现(以及Jedis、Redisson、Lettuce的区别比较)