• Repeater控件使用(含删除,分页功能)


    Repeater控件使用(含删除,分页功能)

    摘自:http://www.cnblogs.com/alanliu/archive/2008/02/25/914779.html

    前臺代碼

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Repeater.aspx.cs" Inherits="Repeater" %>
    
    <!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>Repeater控件使用</title>
        <script language="javascript" type="text/javascript">
        function Check(parentChk,ChildId)   
        {   
            var oElements = document.getElementsByTagName("INPUT");   
            var bIsChecked = parentChk.checked;   
          
           for(i=0; i<oElements.length;i++)   
            {   
                if( IsCheckBox(oElements[i]) &&    
                    IsMatch(oElements[i].id, ChildId))   
                {   
                    oElements[i].checked = bIsChecked;   
                }           
            }      
         }   
          
        function IsMatch(id, ChildId)   
        {   
            var sPattern ='^Repeater1.*'+ChildId+'$';   
            var oRegExp = new RegExp(sPattern);   
            if(oRegExp.exec(id))    
                return true;   
            else    
                return false;   
        }   
          
        function IsCheckBox(chk)   
        {   
            if(chk.type == 'checkbox') return true;   
            else return false;   
        }   
    
        </script>
    </head>
    
    <body>
        <form id="form1" runat="server">
        <div style="margin-bottom:20px;text-align:center; 1006px;">Repeater控件使用</div>
    <asp:Repeater ID="Repeater1" runat="server">
        <%--SeparatorTemplate描述一个介于每条记录之间的分隔符--%>
        <%--<SeparatorTemplate>
            <tr>
            <td colspan="5"><hr /></td>
            </tr>
        </SeparatorTemplate>--%>
        
        <HeaderTemplate>
          <table border="1" cellpadding="0" cellspacing="0" style="1006px;border-collapse:collapse; text-align:center;">
          <tr>
            <td style="background-color:#cccccc; font-weight:bold; height:25px;"><input id="chkAll" name="chkAll" runat="server" type="checkbox" onclick="Check(this,'chkItem')" title="全选" />全</td>
            <td style="background-color:#cccccc; font-weight:bold; height:25px;">View</td>
            <td style="background-color:#cccccc; font-weight:bold; height:25px;">CustomerID</td>
            <td style="background-color:#cccccc; font-weight:bold;">CompanyName</td>
            <td style="background-color:#cccccc; font-weight:bold;">ContactName</td>
            <td style="background-color:#cccccc; font-weight:bold;">ContactTitle</td>
            <td style="background-color:#cccccc; font-weight:bold;">Address</td>
          </tr>
        </HeaderTemplate>
        <ItemTemplate>
          <tr>
            <td><asp:CheckBox ID="chkItem" runat="server" /></td>
            <td><a href='<%# "View.aspx?id="+DataBinder.Eval(Container.DataItem, "CustomerID") %>' target="_blank">View</a></td>
            <td><asp:Label ID="lblID" Text='<%# DataBinder.Eval(Container.DataItem, "CustomerID")%>' runat="server"></asp:Label></td>
            <td><%# DataBinder.Eval(Container.DataItem, "CompanyName")%></td>
            <td><%# DataBinder.Eval(Container.DataItem, "ContactName")%></td>
            <td><%# DataBinder.Eval(Container.DataItem, "ContactTitle")%></td>
            <td><%# DataBinder.Eval(Container.DataItem, "Address")%></td>
          </tr>
        </ItemTemplate>
        <%--AlternatingItemTemplate描述交替输出行的另一种外观--%>
        <AlternatingItemTemplate>
          <tr bgcolor="#e8e8e8">
            <td><asp:CheckBox ID="chkItem" runat="server" /></td>
            <td><a href='<%# "View.aspx?id="+DataBinder.Eval(Container.DataItem, "CustomerID") %>' target="_blank">View</a></td>
            <td><asp:Label ID="lblID" Text='<%# DataBinder.Eval(Container.DataItem, "CustomerID")%>' runat="server"></asp:Label></td>
            <td><%# DataBinder.Eval(Container.DataItem, "CompanyName")%></td>
            <td><%# DataBinder.Eval(Container.DataItem, "ContactName")%></td>
            <td><%# DataBinder.Eval(Container.DataItem, "ContactTitle")%></td>
            <td><%# DataBinder.Eval(Container.DataItem, "Address")%></td>
          </tr>
        </AlternatingItemTemplate>
        <FooterTemplate>
         </table>
        </FooterTemplate>
    </asp:Repeater>
    <div style="background-color:#dedede; 1006px;">
        <asp:Button ID="btnDel" runat="server" Text="删除" OnClick="btnDel_Click" />
       <asp:label ID="lblCurrentPage" runat="server"></asp:label>
       <asp:HyperLink id="lnkFrist" runat="server">首页</asp:HyperLink>
       <asp:HyperLink id="lnkPrev" runat="server">上一页</asp:HyperLink>
       <asp:HyperLink id="lnkNext" runat="server">下一页</asp:HyperLink> 
       <asp:HyperLink id="lnkEnd" runat="server">尾页</asp:HyperLink>
    </div>
        </form>
    </body>
    </html>
    

     後臺代碼

    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Data.SqlClient;
    
    public partial class Repeater : System.Web.UI.Page
    {
        PagedDataSource PDS = new PagedDataSource();
        private string ConnStr = ConfigurationManager.AppSettings["dbConnectionString"];
        private string strsql = "";
    
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!this.Page.IsPostBack)
            {
                this.bind();
            }
        }
    
        private void bind()
        {
            int TotalCount = 0;//总记录数
            int TotalPage = 1; //总页数
            
            SqlConnection conn = new SqlConnection(ConnStr);
            conn.Open();
            SqlDataAdapter da = new SqlDataAdapter("select CustomerID,CompanyName,ContactName,ContactTitle,Address from Customers order by CustomerID desc", conn);
            DataSet ds = new DataSet();
            da.Fill(ds, "Customers");
            DataView dv = ds.Tables[0].DefaultView;
    
            TotalCount = dv.Count;
            PDS.DataSource = dv;
            conn.Close();
            PDS.AllowPaging = true;
            PDS.PageSize = 20;
            int CurPage;
            if (Request.QueryString["Page"] != null)
            CurPage=Convert.ToInt32(Request.QueryString["Page"]);
            else
            CurPage=1;
    
            if (TotalCount == 0)
                TotalPage = 1;
            else
            {
                if (TotalCount % PDS.PageSize == 0)
                    TotalPage = TotalCount / PDS.PageSize;
                else
                    TotalPage = TotalCount / PDS.PageSize + 1;
            }
    
            PDS.CurrentPageIndex = CurPage-1;
            lblCurrentPage.Text = "共" + TotalCount.ToString() + "条记录 当前页:" + CurPage.ToString() + "/" + TotalPage;
    
            lnkFrist.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=1";
            if (!PDS.IsFirstPage)
                lnkPrev.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage - 1);
    
            if (!PDS.IsLastPage)
                lnkNext.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage + 1);
            lnkEnd.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + TotalPage;
    
            Repeater1.DataSource=PDS;
            Repeater1.DataBind();
        }
    
        protected void btnDel_Click(object sender, EventArgs e)
        {
            string ID = "";
    
            for (int i = 0; i < this.Repeater1.Items.Count; i++)
            {
                CheckBox cbox = (CheckBox)this.Repeater1.Items[i].FindControl("chkItem");
                if (cbox.Checked == true)
                {
                    if (ID == "")
                    {
                        ID = "'"+((Label)this.Repeater1.Items[i].FindControl("lblID")).Text+"'";
                    }
                    else
                    {
                        ID += "," + "'" + ((Label)this.Repeater1.Items[i].FindControl("lblID")).Text + "'";
                    } 
                }
            }
            strsql = "delete from Customers where CustomerID in (" + ID + ")";
            try
            {
                SqlConnection conn = new SqlConnection(ConnStr);
                SqlCommand comm = new SqlCommand(strsql, conn);
                comm.Connection.Open();
                comm.ExecuteNonQuery();
                comm.Connection.Close();
                System.Web.HttpContext.Current.Response.Write("<script language='javascript'>alert('刪除成功!');</script>");
            }
            catch (System.Data.SqlClient.SqlException E)
            {
                throw new Exception(E.Message);
            }
            finally
            {
                if (conn.State == ConnectionState.Open)
                    conn.Close();
            }
            this.bind();
        }
    }
    

  • 相关阅读:
    素数线性筛优化
    C++如何求程序运行时间
    02-线性结构4 Pop Sequence
    02-线性结构3 Reversing Linked List
    STL--priority_queue--自定义数据类型
    02-线性结构2 一元多项式的乘法与加法运算
    Linux——安装OpenSSH服务(CentOS系统默认安装了openssh)
    Linux——Vim快速查找功能
    Xmanager——连接linux(deepin)时提示ssh服务器拒绝了密码,请再试一次
    解决CentOS7关闭/开启防火墙出现Unit iptables.service failed to load: No such file or directory.
  • 原文地址:https://www.cnblogs.com/nov5026/p/4546299.html
Copyright © 2020-2023  润新知