DataList分页访问FooterTemplate模板里的控件
今天做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>页
<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();
}
DataList分页访问FooterTemplate模板里的控件的更多相关文章
- 在DataList、Repeater的HeaderTemplate和FooterTemplate模板中寻找控件FindControl
[程序代码] <asp:Repeater ID="Repeater1" runat="server"> <HeaderTemplate> ...
- WPF关于控件 父级控件,子级控件,控件模板中的控件,等之间的相互访问
原文:WPF关于控件 父级控件,子级控件,控件模板中的控件,等之间的相互访问 1,在菜单中访问 弹出菜单的控件 var mi = sender as MenuItem;//菜单条目 MenuItem ...
- 【WPF】创建基于模板的WPF控件(经典)
原文:[WPF]创建基于模板的WPF控件(经典) WPF可以创建两种控件,它们的名字也很容易让人混淆:用户控件(User Control)和定制控件(Customer Control),之所以如此命名 ...
- winfrom获取用户控件里的控件对象
如何获取用户控件里的控件对象呢,其实思路也是很简单的, 比如有一个panel 用户控件 里面有许多的其他控件. 那么要找出一个Label控件怎么找呢,好的.现在我们就开始 首先,一个foreach循环 ...
- swt controls里的控件list
swt controls里的控件list,怎么显示滚动条,并且滚动条自动移动到最下边时,显示最新内容 package com.jokul; import org.eclipse.swt.widgets ...
- iOS 在xib或storyboard里为控件添加圆角、外框和外框颜色
如果要在xib和storyboard里为控件添加圆角和外框宽度,只要这样做就可以 layer.borderWidth 设置外框宽度属性 layer.cornerRadius 设置圆角属性 ...
- 注意Android里TextView控件的一个小坑,用android:theme来设置样式时动态载入的layout会丢失该样式
注意Android里TextView控件的一个小坑,用android:theme来设置样式时动态载入的layout会丢失该样式 这个坑,必须要注意呀, 比如在用ListView的时候,如果在List_ ...
- sencha动态向容器里添加控件出现重叠问题
sencha动态向容器里添加控件出现重叠问题原因是由于动态生成控件的id有重复导致的.(js取时间到毫秒来做id,放在for里面会出现几个控件id是相同的情况.).解决掉重复id的问题就好了. 版权声 ...
- iOS在xib或storyboard里为控件添加圆角、外框和外框颜色
如果要在xib和storyboard里为控件添加圆角和外框宽度,只要这样做就可以: layer.borderWidth 设置外框宽度属性 layer.cornerRadius 设置圆角属性 只要为属性 ...
随机推荐
- wordpress图片水印插件DX-Watermark
DX-Watermark是一款功能齐全的wordpress图片水印插件,可以自动给上传的图片添加文本或者图片水印. 后台截图: 文本水印: 图片水印: 选项说明: 类型:可选择文本或图片水印两种类型, ...
- Android 模拟器检测
参考链接:https://github.com/MindMac/HideAndroidEmulator 从多个方面识别模拟器1.用户习惯:联系人数量.短信数量.相册里面照片数量.安装的应用2.从IME ...
- X下轻量级桌面WindowMaker上手指南
layout: post title: 轻量级桌面WindowMaker上手指南 tags: x11, cygwin, raspi --- 最近工作上需要在远程Linux上运行一个桌面(我需要跑Net ...
- Windows2008 R2下,DCOM配置里的属性灰色不可用的解决方法
错误为:为应用程序池“XXXXXX”提供服务的进程在与“Windows Process Activation Service”通信时出现严重错误.该进程 ID 为"XXX".数据字 ...
- Gson整合Volley返回对象--GsonRequest
Gson是一个使用映射支持JSON与Java对象之间相互转换的库文件.你可以定义和JSON keys相对应名称的Java对象.把对象传递给传递Gson,然后Gson会帮你为对象填充字段值. 下面是一个 ...
- Cocos2dx 把 glview 渲染到 Qt 控件上(Mac 环境)
本文原链接:http://www.cnblogs.com/zouzf/p/4423256.html 环境:Mac 10.9.2 Xcode5.1.1 Qt5.3 cocos2dx-2.2.4 ...
- [原创]Android Handler使用Message的一个注意事项
最近发现了一个莫名其妙的问题,在使用Handler.post(Runnable)这个接口时,Runnable有时候没有运行,非常奇怪,后来发现是因为调用Handler.removeMessage()时 ...
- Spark源码系列(七)Spark on yarn具体实现
本来不打算写的了,但是真的是闲来无事,整天看美剧也没啥意思.这一章打算讲一下Spark on yarn的实现,1.0.0里面已经是一个stable的版本了,可是1.0.1也出来了,离1.0.0发布才一 ...
- TIB自动化测试快讯 - Appium手机自动化测试学习资料精选
TIB自动化测试快讯 - Appium手机自动化测试学习资料精选 Appium+Android+Javahttp://automationqa.com/forum.php?mod=viewthre ...
- 使用Flask-Migrate进行管理数据库升级
我们在升级系统的时候,经常碰到需要更新服务器端数据结构等操作,之前的方式是通过手工编写alter sql脚本处理,经常会发现遗漏,导致程序发布到服务器上后无法正常使用. 现在我们可以使用Flask-M ...