简单数据列表分页方法,详细
数据表简单分页更新前台代码:
& ltASP:DataList ID = & quot;数据列表& quotDataKeyField = & quotqid & quotrunat = & quot服务器& quotOnEditCommand = & quotDataList1 _ EditCommand & quotOnCancelCommand = & quotdatalist 1 _ cancel命令& quotOnUpdateCommand = & quotDataList1 _ UpdateCommand & quotOnDeleteCommand = & quotDataList1 _ DeleteCommand & quot重复列= & quot1 & quot网格线= & quot两个& quot单元格填充= & quot0 & gt;Width = & quot225像素& quotOnItemCommand = & quotDataList1 _ ItemCommand & quot& gt
& ltItemStyle BorderStyle = & quot固体& quot/& gt;
& ltSelectedItemStyle back color = & quot;黄色& quot& gt
& lt/SelectedItemStyle & gt;
& ltItemTemplate & gt
编号:< %#数据绑定器。评估(容器。数据项,& quotqid & quot)% & gt
来源:< %# DataBinder。评估(容器。数据项,& quotqsource & quot)% & gt
& ltASP:link button runat = & quot;服务器& quotID = & quot详细信息& quotCommandName = & quot选择& quot& gt详细的
& ltASP:link button runat = & quot;服务器& quotID = & quot编辑& quotCommandName = & quot编辑& quot& gt编辑
& lt/item template & gt;
& ltSelectedItemTemplate & gt& lt%# DataBinder。评估(容器。数据项,& quotqsource & quot)% & gt
& ltASP:link button ID = & quot;嘘& quotrunat = & quot服务器& quotText = & quot关闭查询“CommandName = & quot关闭& quot/& gt;& lt/SelectedItemTemplate & gt;
& ltEditItemTemplate & gt
& ltASP:link button ID = & quot;保存& quotrunat = & quot服务器& quotCommandName = & quot更新& quot& gt救援
& ltASP:link button ID = & quot;取消"runat = & quot服务器& quotCommandName = & quot取消"& gt取消
& ltASP:link button ID = & quot;删除& quotrunat = & quot服务器& quotCommandName = & quot删除& quot& gt删除</ASP:link button & gt;
& ltASP:TextBox ID = & quot;tbEdit & quotrunat = & quot服务器& quotText = & # 39& lt%# DataBinder。评估(容器。数据项,& quotqsource & quot)% & gt'& gt& lt/ASP:TextBox & gt;
& lt/edit item template & gt;
& lt/ASP:DataList & gt;
& ltasp:超链接id = & quot超链接& quotrunat = & quot服务器& quot& gt主页</ASP:HyperLink & gt;
& ltasp:超链接id = & quot超链接& quotrunat = & quot服务器& quot& gt上一页</ASP:HyperLink & gt;
& ltasp:超链接id = & quot超链接& quotrunat = & quot服务器& quot& gt下一页
& ltasp:超链接id = & quot超链接& quotrunat = & quot服务器& quot& gt结束页面</ASP:HyperLink & gt;
背景代码:
受保护的void Page_Load(对象发送方,EventArgs e)
{
如果(!IsPostBack)
{
bindata();
page bind();
}
}
私有void bindata()
{
string strsql = & quotselect * from list & quot;
数据列表1。data source = oledb access . getds(strsql);
数据列表1。DataBind();
}
私有void pagebind()
{
字符串sql = & quotselect * from list & quot;
pageddata source PDS = new pageddata source();
pds。data source = oledb access . getds(SQL)。表格[0]。DefaultView
pds。AllowPaging = true
pds。PageSize = 2;
string pagecount = pds。page count . ToString();
int curpage
如果(请求。query string[& quot;页面& quot] !=空)
{
curpage = Convert。ToInt32(请求。query string[& quot;页面& quot]);
}
其他
{
cur page = 1;
}
pds。current pageindex = cur page-1;
如果(!pds。IsFirstPage)
{
超链接2。NavigateUrl =请求。CurrentExecutionFilePath
& quot;?Page = & quot
转换。ToString(cur page-1);
}
如果(!pds。IsLastPage)
{
超链接3。NavigateUrl =请求。CurrentExecutionFilePath
& quot;?Page = & quot
转换。ToString(cur page
1);
}
如果(!pds。IsFirstPage)
{
超链接1。NavigateUrl =请求。CurrentExecutionFilePath
& quot;?Page = 1 & quot;
}
如果(!pds。IsLastPage)
{
超链接4。NavigateUrl =请求。CurrentExecutionFilePath
& quot;?Page = & quot
page count;
}
数据列表1。数据源= pds
数据列表1。DataBind();
}
受保护的空数据列表1_ItemCommand(对象源,数据列表命令事件参数e)
{
if(e . command name = = & quot;选择& quot)//选项
{
这个。datalist 1 . SelectedIndex = e . item . item index;
这个。datalist 1 . DataBind();
}
其他
{
if(e . command name = = & quot;关闭& quot)
{
数据列表1。SelectedIndex =-1;
这个。datalist 1 . DataBind();
}
}
bindata();
page bind();
}
受保护的空数据列表1_EditCommand(对象源,数据列表命令事件参数e)
{
这个。datalist 1 . EditItemIndex = e . item . item index;
这个。datalist 1 . DataBind();
}
受保护的void DataList1_CancelCommand(对象源,DataListCommandEventArgs e)
{
这个。datalist 1 . EditItemIndex =-1;
这个。datalist 1 . DataBind();
}
受保护的空数据列表1 _删除命令(对象源,数据列表命令事件参数e)
{
长pid =转换。ToInt64(数据列表1。DataKeys[e . item . item index]);
if(oledb access . get exec(& quot;从列表中删除,其中qid = & quot
PID
& quot;”))
{
回应。写(& quot& lt脚本& gtalert(& # 39;删除成功!')& lt/script & gt;”);
}
其他
{
回应。写(& quot& lt脚本& gtalert(& # 39;删除失败!')& lt/script & gt;”);
}
}
受保护的空数据列表1 _更新命令(对象源,数据列表命令事件参数e)
{
长pid =转换。ToInt64(数据列表1。DataKeys[e . item . item index]);
string name =((TextBox)e . item . findcontrol(& quot;tbEdit & quot)).文本;
if(oledb access . get exec(& quot;更新列表集qsource = & # 39″
name
& quot;'其中qid = & quot
PID
& quot;”))
{
回应。写(& quot& lt脚本& gtalert(& # 39;更新成功!')& lt/script & gt;”);
}
其他
{
回应。写(& quot& lt脚本& gtalert(& # 39;更新成功!')& lt/script & gt;”);
}
数据列表1。EditItemIndex =-1;
数据列表1。DataBind();
}
再也没有了。还有两万多字要答。
repeat控件作用?
Repeater控件是Web 服务器控件中的一个容器控件,它使您可以从页的任何可用数据中创建出自定义列表
Repeater 控件不具备内置的呈现功能,这表示用户必须通过创建模板为 Repeater 控件提供布局。当该页运行时,Repeater 控件依次通过数据源中的记录为每个记录呈现一个项。
假设我们显示比较复杂的数据,可以用gridview,一般复杂的用DataList,那么简单的数据呈现呢?我们就用Repeater了,因为他简单,小巧,最主要是灵活.
我们上面说,他不具备内置的呈现功能,所以我们得用到一些模板来实现他的数据呈现.
下表描述了 Repeater 控件支持的模板。
模板属性 说明
ItemTemplate
包含要为数据源中每个数据项都要呈现一次的 HTML 元素和控件。
AlternatingItemTemplate
包含要为数据源中每个数据项都要呈现一次的 HTML 元素和控件。通常,可以使用此模板为交替项创建不同的外观,例如指定一种与在 ItemTemplate 中指定的颜色不同的背景色。
HeaderTemplate 和 FooterTemplate
包含在列表的开始和结束处分别呈现的文本和控件。
SeparatorTemplate
包含在每项之间呈现的元素。典型的示例可能是一条直线(使用 hr 元素)。
我们在这些模板里面定义好格式,当网页被呈现出来的时候就会比较漂亮了,当然你做得丑的话,那是不可能漂亮的了.
另外 Item 样版必须要定义
如果Repeater控件没有指定数据源,它将不显示,如果指定的数据源中没有数据,那么头,脚模板将继续显示。
对于这个控件我们要讲的主要有以下几点
1,理解该控件的几个模板
2,简单实用 Repeater控件实现数据读取以及呈现。
3,实现该控件的镶套使用
4,实现数据分页(我博客上以前发布的是在repeater外面利用控件分页,但是总感觉不好看,这次我们把分页放到了页脚模板 中,以使控件更为美观)
5,让我们的数据条目成为链接,也只有这样,他才是完整的.