您的位置:首页 > 编程语言 > ASP

Repeater控件绑定及分页

2016-07-10 10:49 543 查看

前言

学习牛腩的时候接触到Repeater控件,感觉很神奇。Repeater控件,DataList,Datagrid控件都能绑定数据库动态显示数据库等的内容。

Html代码

<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h1>分页显示</h1>
<p>
<asp:Label ID="Label1" runat="server" Text="当前页:"></asp:Label>
<asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="上一页" />
<asp:Button ID="Button2" runat="server" Text="下一页" OnClick="Button2_Click" /></p>
<asp:Panel ID="Panel1" runat="server" Height="224px" Width="503px">
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<tr>
<td>
<!--数据绑定 绑定容器的数据项 “”里的是具体绑定的数据项 后面还有一个{0:},可以设置数据的格式}-->
<%# DataBinder.Eval(Container.DataItem,"LastName") %>
<%# DataBinder.Eval(Container.DataItem,"FirstName") %>
</td>
</tr>
</ItemTemplate>
<AlternatingItemTemplate>

<tr>
<td><font color="blue">
<%# DataBinder.Eval(Container.DataItem,"LastName") %>
<%# DataBinder.Eval(Container.DataItem,"FirstName") %>
</td>
</tr>
</font>
</AlternatingItemTemplate>
<HeaderTemplate>
<h3>模板页眉</h3>
<table border="1">
<tr>
<td>员工名字</td>
</tr>
</HeaderTemplate>
<FooterTemplate>
<h3>模板页脚</h3>
</table>
</FooterTemplate>

</asp:Repeater>
</asp:Panel>

</div>
</form>
</body>


后台代码

public partial class repeaterControl : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//第一次登录
if (!this.IsPostBack)
{
this.Label2.Text = "1";
this.dataBindToRepeater();

}
}

private void dataBindToRepeater()
{
int curPage = Convert.ToInt32(this.Label2.Text);
SqlConnection con = DB.createCon();
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = new SqlCommand("select * from employees", con);
DataSet ds = new DataSet();
sda.Fill(ds, "emp");
//分页用pageddatasource
System.Web.UI.WebControls.PagedDataSource ps = new PagedDataSource();
ps.DataSource = ds.Tables["emp"].DefaultView;
ps.AllowPaging = true;
ps.PageSize = 3;
ps.CurrentPageIndex = curPage - 1;
this.Button1.Enabled = true;
this.Button2.Enabled = true;
if (curPage == 1)
{
this.Button1.Enabled = false;
}
if (curPage == ps.PageCount)
{
this.Button2.Enabled = false;
}
this.Repeater1.DataSource = ps;
this.Repeater1.DataBind();
}
//上一页按钮单击
protected void Button1_Click(object sender, EventArgs e)
{
this.Label2.Text = Convert.ToString((Convert.ToInt32(this.Label2.Text)) - 1);
this.dataBindToRepeater();
}
//下一页按钮单击
protected void Button2_Click(object sender, EventArgs e)
{
this.Label2.Text = Convert.ToString((Convert.ToInt32(this.Label2.Text)) + 1);
this.dataBindToRepeater();
}
}


结语

这几天主要学了一些asp.net中的控件:内置控件,复杂控件(广告控件和日历控件),验证控件和列表控件。不知道该如何总结,学的也是囫囵吞枣,还是应该找几个重点的例子敲一敲,实践实践。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  asp-net