datalist 怎么分页(datalist怎么分页)-冯金伟博客园

简单数据列表分页方法,详细

数据表简单分页更新前台代码:

& 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;取消&quotrunat = & quot服务器& quotCommandName = & quot取消&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,让我们的数据条目成为链接,也只有这样,他才是完整的.