repeater初识及实现分页效果11.28

来源:互联网 发布:阿里巴巴云计算是什么 编辑:程序博客网 时间:2024/05/16 06:13
看帖评论是美德!
 
Repeater 控件是模板化的数据绑定列表,Repeater 控件是“无外观的”,即:它不具有任何内置布局或样式,也就不会产生任何数据控制表格来控制数据的显示。因此,我们必须在控件的模板中明确声明所有 HTML 布局标记、格式标记和样式标记。
 
说白了就是Repeater就是一个纯自定义模板!基本完全自主化设计!
 
下面贴一个Repeater的实例:
//基于vs4.0版本//前台(aspx)代码<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    <title></title></head><body>    <form id="form1" runat="server">    <div>            <%--<asp:Repeater ID="Repeater1" runat="server">        <ItemTemplate><div>        <asp:Label ID="lblSid" runat="server" Text='<%#Eval("sid") %>'></asp:Label>        <asp:Label ID="lblSname" runat="server" Text='<%#Eval("sname") %>'></asp:Label>        <asp:Image ID="imgPhoto" runat="server" ImageUrl='<%#Eval("photo") %>' /></div>        </ItemTemplate>        <SeparatorTemplate>        <div style="width:100%;height:1px;line-height:0px;background-color:Gray;"></div>        <hr />        </SeparatorTemplate>        <HeaderTemplate>        <hr />        </HeaderTemplate>        <FooterTemplate>        <hr />        </FooterTemplate>        <AlternatingItemTemplate>        <div style="background-color:Red;">        <asp:Label ID="lblSid" runat="server" Text='<%#Eval("sid") %>'></asp:Label>        <asp:Label ID="lblSname" runat="server" Text='<%#Eval("sname") %>'></asp:Label>        <asp:Image ID="imgPhoto" runat="server" ImageUrl='<%#Eval("photo") %>' /></div>        </AlternatingItemTemplate>        </asp:Repeater>--%>        <asp:Repeater ID="Repeater1" runat="server"             onitemcommand="Repeater1_ItemCommand">        <HeaderTemplate>          <table>          <tr><td>编号</td><td>姓名</td><td>图片</td><td>删除</td><td>编辑</td></tr>        </HeaderTemplate>        <ItemTemplate>              <tr>        <td><%#Eval("sid") %></td><td><%#Eval("sname") %></td><td><img src='<%#Eval("photo") %>' width="60px" height="60px"/></td>        <td><asp:LinkButton ID="btnDelete" runat="server" Text="删除" CommandName="Delete" CommandArgument='<%#Eval("sid") %>'></asp:LinkButton></td>        <td><asp:LinkButton ID="btnEdit" runat="server" Text="编辑" CommandName="Edit" CommandArgument='<%#Eval("sid") %>'></asp:LinkButton></td>        </tr>                </ItemTemplate>        <AlternatingItemTemplate>        <tr style="background-color:Red;">        <td><%#Eval("sid") %></td><td><%#Eval("sname") %></td><td><img src='<%#Eval("photo") %>' width="60px" height="60px"/></td>        <td><asp:LinkButton ID="btnDelete" runat="server" Text="删除" CommandName="Delete" CommandArgument='<%#Eval("sid") %>'></asp:LinkButton></td>        <td><asp:LinkButton ID="btnEdit" runat="server" Text="编辑" CommandName="Edit" CommandArgument='<%#Eval("sid") %>'></asp:LinkButton></td>        </tr>        </AlternatingItemTemplate>        <FooterTemplate>        </table>        </FooterTemplate>        </asp:Repeater>        </div>    </form></body></html>//后台(CS)代码using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Configuration;using System.Data.SqlClient;using System.Data;public partial class _Default : System.Web.UI.Page{    private string strCnn;    protected void Page_Load(object sender, EventArgs e)    {        if(!IsPostBack)            BindStudent();    }    private void BindStudent()    {        strCnn = ConfigurationManager.ConnectionStrings["studentCnn"].ConnectionString;        using (SqlConnection sqlCnn = new SqlConnection(strCnn))        {            using (SqlCommand sqlCmm = sqlCnn.CreateCommand())            {                sqlCmm.CommandText = "select * from student";                DataSet ds = new DataSet();                SqlDataAdapter da = new SqlDataAdapter(sqlCmm);                da.Fill(ds);                this.Repeater1.DataSource = ds;    //使用ds.tables[0]是个好习惯,不过只能访问到第一个表                this.Repeater1.DataBind();            }        }    }    protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)    {        if (e.CommandName == "Delete")        {            strCnn = ConfigurationManager.ConnectionStrings["studentCnn"].ConnectionString;            using (SqlConnection sqlCnn = new SqlConnection(strCnn))            {                using (SqlCommand sqlCmm = sqlCnn.CreateCommand())                {                    sqlCmm.CommandText = "delete from student where sid=" + e.CommandArgument.ToString();                    sqlCnn.Open();                    sqlCmm.ExecuteNonQuery();                }            }            this.BindStudent();        }        if (e.CommandName == "Edit")        {            Server.Transfer("Edit.aspx?sid=" + e.CommandArgument.ToString());        }    }}

分页效果的实现代码与DataList控件实现一模一样!使用存储过程实现!
上一篇帖子有介绍分页代码!
上上篇帖子有存储过程代码!
希望对大家学习有用!