Repeater控件的嵌套使用自定义分页及加链接样式制定源代码.docx
《Repeater控件的嵌套使用自定义分页及加链接样式制定源代码.docx》由会员分享,可在线阅读,更多相关《Repeater控件的嵌套使用自定义分页及加链接样式制定源代码.docx(8页珍藏版)》请在冰点文库上搜索。
Repeater控件的嵌套使用自定义分页及加链接样式制定源代码
Repeater控件的嵌套使用、自定义分页及加链接,样式制定源代码
Repeater控件自定义分页及加链接,样式制定源代码。
.cs文件代码:
usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
usingSystem.Data.SqlClient;
publicpartialclass_Default:
System.Web.UI.Page
...{
protectedvoidPage_Load(objectsender,EventArgse)
...{
if(!
IsPostBack)
...{
myRepeater.DataSource=pds();
//为Repeater1控件指定数据源
myRepeater.DataBind();
//这个当然是必须的,绑定上去
}
}
privatePagedDataSourcepds()
...{
SqlConnectionmyconn=newSqlConnection("DataSource=192.168.201.108;InitialCataLog=陈乐斌;UserID=sa;Password=yttvmedia");
myconn.Open();
SqlDataAdapterda=newSqlDataAdapter("selectid,username,password,email,tel,agefrom[user]orderbyiddesc",myconn);
DataSetds=newDataSet();
da.Fill(ds,"user");
SqlDataAdapterda2=newSqlDataAdapter("selectclassid,classname,teachername,id,time,score,slevelfrom[class]",myconn);
da2.Fill(ds,"class");
ds.Relations.Add("myrela",ds.Tables["user"].Columns["id"],ds.Tables["class"].Columns["id"]);
//为上面建立的两个表创建一个关系,指明父列和子列的名称并为他们的关系命名
PagedDataSourcepds=newPagedDataSource();
//初始化一个PagedDataSource,允许控件分页
pds.DataSource=ds.Tables["user"].DefaultView;
//将上面的ds转换成标准数据视图
pds.AllowPaging=true;
//允许分页
pds.PageSize=5;
//每页大小为5
pds.CurrentPageIndex=Convert.ToInt32(Request.QueryString["page"]);
//设置当前页
returnpds;
//将处理完毕的pds对象发出去
}
protectedvoidmyRepeater_ItemDataBound(objectsender,RepeaterItemEventArgse)
...{
if(e.Item.ItemType==ListItemType.Footer)
...{//判断当前项是页脚模板
intn=pds().PageCount;//将分页总数赋给变量n
inti=pds().CurrentPageIndex;//将当前分页码赋给i
Labellblpc=(Label)e.Item.FindControl("lblpc");
lblpc.Text=n.ToString();
//找到lblpc这个Label,将总页码赋给他
Labellblp=(Label)e.Item.FindControl("lblp");
lblp.Text=Convert.ToString(pds().CurrentPageIndex+1);
//找到lblp这个Label,将当前页码赋给他,但是注意,因为页码从0开始,这里要直观的话就得加1
HyperLinkhlfir=(HyperLink)e.Item.FindControl("hlfir");
hlfir.NavigateUrl="?
page=0";
HyperLinkhlla=(HyperLink)e.Item.FindControl("hlla");
hlla.NavigateUrl="?
page="+Convert.ToInt32(n-1);
//找到表示最前页和末页的Label,为他们的NavigateUrl属性赋为第0页和最大页码减1
HyperLinkhlp=(HyperLink)e.Item.FindControl("hlp");
HyperLinkhln=(HyperLink)e.Item.FindControl("hln");
//找到表示上页和下页这两个控件
if(i<=0)
...{//如果当前页已经是第0页
hlfir.Enabled=false;
hlp.Enabled=false;
hln.Enabled=true;
}
else
...{
hlp.NavigateUrl="?
page="+Convert.ToInt32(i-1);
}
if(i>n-2)
...{//如果当前项已经是最末页
hln.Enabled=false;
hlla.Enabled=false;
hlp.Enabled=true;
}
else
...{
hln.NavigateUrl="?
page="+Convert.ToInt32(i+1);
}
DropDownListddlpage=(DropDownList)e.Item.FindControl("ddlpage");
for(intp=0;p ...{
ddlpage.Items.Add(Convert.ToString(p+1));
if(p==i)
...{
ddlpage.SelectedIndex=p;
}
}
}
}
protectedvoidddl_SelectedChanged(objectsender,EventArgse)
...{
DropDownListddl=(DropDownList)sender;
Page.Response.Redirect("?
page="+(Convert.ToInt32(ddl.SelectedItem.Value)-1));
}
}
aspx文件:
<%@PageLanguage="C#"AutoEventWireup="true" CodeFile="Default.aspx.cs"Inherits="_Default"%>
<%@ImportNamespace="System.Data"%>
DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http:
//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
//www.w3.org/1999/xhtml">
无标题页
RepeaterID="myRepeater"runat="server"OnItemDataBound="myRepeater_ItemDataBound">
#DFA894">
30px">
编号
姓名 |
密码 |
年龄 |
电话 |
邮箱 |
8px">
|
<%#DataBinder.Eval(Container.DataItem,"id")%> |
<%#DataBinder.Eval(Container.DataItem,"username")%> |
<%#DataBinder.Eval(Container.DataItem,"password")%> |
<%#DataBinder.Eval(Container.DataItem,"age")%> |
<%#DataBinder.Eval(Container.DataItem,"tel")%> |
<%#Eval("email")%>"><%#DataBinder.Eval(Container.DataItem,"email")%> |
RepeaterID="myRepeater2"runat="server"DataSource='<%#((DataRowView)Container.DataItem).Row.GetChildRows("myrela")%>'>
8px">
|
9pt">
<%#DataBinder.Eval(Container.DataItem,"["classname"]")%>
9pt">
<%#DataBinder.Eval(Container.DataItem,"["teachername"]")%>
9pt">
<%#DataBinder.Eval(Container.DataItem,"["time"]")%>
9pt">
<%#DataBinder.Eval(Container.DataItem,"["score"]")%>
9pt">
<%#DataBinder.Eval(Container.DataItem,"["slevel"]")%>
|
Repeater>
#000099;">
<%#Eval("id")%>
#000099;">
<%#Eval("username")%>
#000099;">
<%#Eval("password")%>
#000099;">
<%#Eval("age")%>
#000099;">
<%#Eval("tel")%>
#000099;">
<%#Eval("email")%>"><%#Eval("email")%>
|
RepeaterID="myRepeater2"runat="server"DataSource='<%#((DataRowView)Container.DataItem).Row.GetChildRows("myrela")%>'>
8px">
|
#000099; font-size:
9pt">
<%#DataBinder.Eval(Container.DataItem,"["classname"]")%>
#000099;font-size:
9pt">
<%#DataBinder.Eval(Container.DataItem,"["teachername"]")%>
#000099;font-size:
9pt">
<%#DataBinder.Eval(Container.DataItem,"["time"]")%>
#000099;font-size:
9pt">
<%#DataBinder.Eval(Container.DataItem,"["score"]")%>
#000099;font-size:
9pt">
<%#DataBinder.Eval(Container.DataItem,"["slevel"]")%>
|
Repeater>
15px;">
1pt;"/>
|
8px">
|
9pt;color:
#0099ff;background-color:
#e6feda;">共LabelID="lblpc"runat="server"Text="Label">
Label>页 当前为第LabelID="lblp"runat="server"Text="Label">
Label>页
HyperLinkID="hlfir"runat="server"Text="首页">
HyperLink>
HyperLinkID="hlp"runat="server"Text="上一页">
HyperLink>
HyperLinkID="hln"runat="server"Text="下一页">
HyperLink>
HyperLinkID="hlla"runat="server"Text="末页">
HyperLink>
跳转到DropDownListID="ddlpage"runat="server"AutoPostBack="true"OnSelectedIndexChanged="ddl_SelectedChanged">
DropDownList>
Repeater>