背景:
阅读新闻

asp:Repeater 例子

  作者: 今日评论: [字体: ]

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>


<%@ Import Namespace="System.Data" %>


<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <title></title>

    <style>

        .table {

            border: 1px double #A3D1AD;

            margin-top: 5px;

            margin-bottom: 5px;

            background: #FFFFFF;

            font-size: 12px;

        }


        /*选中时式样*/

        .TR_BG {

            background-color: #E4FCCB;

            font-size: 12px;

        }


        /*非选中时式样*/

        .TR_BG_list {

            background-color: #F4FFE8;

            font-size: 12px;

        }


        .sys_topBg {

            color: #47974B;

            font-size: 14px;

            text-decoration: none;

            font-weight: bold;

        }

    </style>


    <script>


        function SelectAll(f, mode)

        {

            if (mode == true)

            {

                for (i = 0; i < f.length; i++)

                {

                    if (f.elements[i].type == "checkbox")

                    {

                        f.elements[i].checked = true;

                    }

                }

            }

            else

            {

                for (i = 0; i < f.length; i++)

                {

                    if (f.elements[i].type == "checkbox")

                    {

                        f.elements[i].checked = false;

                    }

                }

            }

        }


        //CSS背景控制

        function overColor(Obj)

        {

            var elements = Obj.childNodes;

            for (var i = 0; i < elements.length; i++)

            {

                elements[i].className = "TR_BG"

                Obj.bgColor = ""; //颜色要改

            }

        }


        function outColor(Obj)

        {

            var elements = Obj.childNodes;

            for (var i = 0; i < elements.length; i++)

            {

                elements[i].className = "TR_BG_list";

                Obj.bgColor = "";

            }

        }

    </script>


</head>

<body>

    <form id="form1" runat="server">

        <div>

            <asp:Repeater ID="DataList1" runat="server"

                OnItemCommand="rptList_ItemCommand"

                OnItemDataBound="rptList_ItemDataBound">

                <HeaderTemplate>

                    <table id="tablist" width="99%" border="0" align="center" cellpadding="4" cellspacing="1" bgcolor="#FFFFFF" class="table">

                        <tr class="TR_BG">


                            <td align="left" valign="middle" class="sys_topBg" width="65">

                                <asp:LinkButton ID="lnkID" runat="server" CommandName="sortlist" CommandArgument="id">ID</asp:LinkButton>

                            </td>


                            <td align="center" valign="middle" class="sys_topBg" width="90">

                                <asp:LinkButton ID="lnkusername" runat="server" CommandName="sortlist" CommandArgument="username">user name</asp:LinkButton>

                            </td>


                            <td align="center" valign="middle" class="sys_topBg" width="90">

                                <asp:LinkButton ID="lnkmail" runat="server" CommandName="sortlist" CommandArgument="mail">mail</asp:LinkButton>

                            </td>

                            <td align="center" valign="middle" class="sys_topBg" width="60">編集</td>

                            <td align="center" valign="middle" class="sys_topBg" width="60">削除

                                <input name="Checkboxc" type="checkbox" onclick="javascript: SelectAll(this.form, this.checked);" />

                            </td>

                        </tr>

                </HeaderTemplate>


                <ItemTemplate>

                    <tr class="TR_BG_list" onmouseover="overColor(this)" onmouseout="outColor(this)">

                        <td align="left" valign="middle" height="20"><%#((DataRowView)Container.DataItem)["id"]%></td>

                        <td align="left" valign="middle"><%#((DataRowView)Container.DataItem)["username"]%></td>

                        <td align="left" valign="middle"><%#((DataRowView)Container.DataItem)["mail"]%></td>

                        <td align="center" valign="middle">

                            <a class="list_link" title="<%#((DataRowView)Container.DataItem)["username"]%>"

                                href="XXX.aspx?ID=<%#((DataRowView)Container.DataItem)["ID"]%>&action=Edit">編集</a>

                        </td>

                        <td align="center" valign="middle"><%#((DataRowView)Container.DataItem)["Op"]%></td>

                    </tr>

                </ItemTemplate>


                <FooterTemplate>

                    </table>

                </FooterTemplate>

            </asp:Repeater>

        </div>



    </form>

</body>

</html>



-----.cs----

using System;

using System.Collections.Generic;

using System.Data;

using System.Linq;

using System.Threading;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;


namespace WebApplication1

{

    public partial class WebForm1 : System.Web.UI.Page

    {

        protected void Page_Load(object sender, EventArgs e)

        {

            Response.CacheControl = "no-cache";

            if (!IsPostBack)

            {

                string sortlnkBtnName = "lnkID";

                string sortColName = "id";

                string sortType = "asc";

                this.BindListData(sortlnkBtnName, sortColName, sortType);

            }

        }


        private void BindListData(string sortlnkBtnName, string sortColName, String sortType)

        {

            DbHelper.CONN_STR = System.Configuration.ConfigurationManager.ConnectionStrings["ConStr"].ConnectionString;

            string sql = String.Format("select * from userinfo order by {0} {1}", sortColName, sortType);

            DataTable dt = DbHelper.FillTable(sql, null);

            if (dt != null && dt.Rows.Count > 0)

            {

                dt.Columns.Add("op", typeof(string));

                for (int k = 0; dt.Rows.Count > k; k++)

                {

                    dt.Rows[k]["op"] = "<input name=\"Checkbox1\" type=\"checkbox\" value=" + dt.Rows[k]["ID"].ToString() + "  runat=\"server\" />";

                }

            }


            ViewState["sortlnkBtnName"] = sortlnkBtnName;

            ViewState["sortColName"] = sortColName;

            ViewState["sortType"] = sortType;


            DataList1.DataSource = dt;

            DataList1.DataBind();

        }


        protected void rptList_ItemDataBound(object sender, RepeaterItemEventArgs e)

        {

            if (e.Item.ItemType == ListItemType.Header)

            {

                string sortlnkBtnName = ViewState["sortlnkBtnName"].ToString();

                string sortColName = ViewState["sortColName"].ToString();

                string sortType = ViewState["sortType"].ToString();


                LinkButton lnkBtn = (LinkButton)e.Item.FindControl(sortlnkBtnName);

                if (sortType == "desc")

                {

                    lnkBtn.Text = lnkBtn.Text + "▼";

                }

                else

                {

                    lnkBtn.Text = lnkBtn.Text + "▲";

                }

                lnkBtn.CommandArgument = sortColName + ";" + sortType;

            }

        }


        protected void rptList_ItemCommand(object source, RepeaterCommandEventArgs e)

        {

            if (e.Item.ItemType == ListItemType.Header)

            {

                //can sort

                if (e.CommandName == "sortlist")

                {

                    LinkButton lnkBtn = (LinkButton)e.CommandSource;

                    string[] args = e.CommandArgument.ToString().Split(new string[] { ";" }, StringSplitOptions.None);

                    string sortColName = args[0];

                    string sortType = args.Length > 1 ? args[1] : "desc";

                    //set current

                    if (sortType == "desc")

                    {

                        sortType = "asc";

                    }

                    else

                    {

                        sortType = "desc";

                    }

                    this.BindListData(lnkBtn.ID, sortColName, sortType);

                }

            }

        }




    }

}

来源:
录入日期:[2017/12/13 2:37:00]
收藏 推荐 打印 | 录入:mikebai | 阅读:
文章评论      
正在加载评论列表...
评论表单加载中...