• asp.net Repeater控件使用


    效果图

    一、列表页面

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="List.aspx.cs" Inherits="WebApplication1.Person.PersonList" %>
    
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
        <script src="../Scripts/jquery-1.10.2.min.js"></script>
        <title></title>
    </head>
    <body>
        <p>
          <a href="/Person/Save" style="float:right">添加</a>
        </p>
        <form id="form1" runat="server">
            <asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound" OnItemCommand="Repeater1_ItemCommand">
                <HeaderTemplate>
                    <table class="tb_list">
                        <tr>
                            <th>编号</th>
                            <th>姓名</th>
                            <th>年龄</th>
                            <th>性别</th>
                            <th>操作</th>
                        </tr>
                </HeaderTemplate>
                <ItemTemplate>
                    <tr>
                        <td><%#Eval("Id") %></td>
                        <td><%#Eval("UserName") %></td>
                        <td>
                            <asp:Label runat="server" ID="lbAge" Text='<%#Eval("Age") %>' />
                        </td>
                        <td><%#Eval("SexName") %></td>
                        <td>  
                               <a href='/Person/Save.aspx?Id=<%#Eval("Id") %>'>编辑</a>
                            <a  href='/Person/Detail.aspx?Id=<%#Eval("Id") %>'>详细</a>
                             <asp:LinkButton ID="lbtnDel" OnClientClick="javascript:return confirm('您确定要删除该项么?')" CommandName="DelPerson" CommandArgument='<%#Eval("Id") %>' runat="server">删除</asp:LinkButton>
                        </td>
                    </tr>
                </ItemTemplate>
                <FooterTemplate>
                    </table>
                </FooterTemplate>
            </asp:Repeater>
        </form>
    </body>
    </html>
    <style type="text/css">
        .tb_list {
            border-collapse: collapse;
             100%;
            border: 1px solid black;
        }
    
            .tb_list th, .tb_list td {
                padding: 10px;
                text-align: center;
                border-bottom: 1px solid black;
            }
    
        .alternating {
            background-color: silver;
        }
    </style>
    <script type="text/javascript">
        $(function () {
            $(".tb_list tr:odd").each(function (index, elm) {
                $(elm).addClass("alternating");
            });
        });
    </script> 
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Data.SqlClient;
    using System.Drawing;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    namespace WebApplication1.Person
    {
        public partial class PersonList : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    this.Repeater1.DataSource = rptDataBind();
                    this.Repeater1.DataBind();
                }
            }
            private IList<Person> rptDataBind()
            {
                string sql = "select p.*,s.SexName from tb_Person p left join tb_Sex s on p.Sex=s.Id";
                IList<Person> list = new List<Person>(); 
                using (MSSqlHelper context = new MSSqlHelper())
                {
                    SqlDataReader reader = context.GetSqlDataReader(sql); 
                    while (reader.Read())
                    {
                        Person p = new Person(); 
                        p.Id = Convert.ToInt32(reader["Id"]);
                        p.Age = Convert.ToInt32(reader["Age"]);
                        p.Sex = Convert.ToInt32(reader["Sex"]);
                        p.UserName = reader["UserName"].ToString();
                        p.SexName = reader["SexName"].ToString();
                        list.Add(p);
                    }
                    reader.Close();
                    return list;
                }
            }
            protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
            {
                if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
                {
                    Label lbAge = (Label)e.Item.FindControl("lbAge");
                    //方式一
                    if (Convert.ToInt32( lbAge.Text??"0") > 25)
                    {
                        lbAge.ForeColor = Color.Red;
                        lbAge.Style.Add(HtmlTextWriterStyle.FontWeight, "900");
                    }
                    ////方式二
                    //if (((Person)e.Item.DataItem).Age > 25)
                    //{
                    //    lbAge.ForeColor = Color.Red;
                    //    lbAge.Style.Add(HtmlTextWriterStyle.FontWeight, "900");
                    //}
                }
            }
            protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
            {
                if (e.CommandName == "DelPerson")
                {
                    string sql = "delete  tb_Person  where Id=@Id"; 
                    using (MSSqlHelper context = new MSSqlHelper())
                    {
                        context.ExecuteNonQuery(sql, new SqlParameter("@Id", e.CommandArgument));
                        Server.Transfer("/Person/List.aspx");
                    }
                }
            }
        }
        class Person
        {
            public int Id { get; set; }
            public string UserName { get; set; }
            public int Age { get; set; }
            public int Sex { get; set; }
            public string SexName { get; set; }
        }
    }

    二、添加、修改页面

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Save.aspx.cs" Inherits="WebApplication1.Person.SavePerson" %>
    
    <!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>
    </head>
    <body>
        <form id="form1" runat="server">
            <asp:HiddenField runat="server"  ID="hidId" />
            <p>
                <label>姓名</label><asp:TextBox runat="server" ID="txtUserName"></asp:TextBox>
            </p>
            <p>
                <label>年龄</label>
                <asp:DropDownList ID="ddlAge" runat="server">
                </asp:DropDownList>
            </p>
            <p>
                <label>性别</label><asp:RadioButtonList ID="rbtnListSex" runat="server"></asp:RadioButtonList> 
            </p> 
            <p>
                &nbsp;<asp:Button ID="btnSubmite" runat="server" Text="提交" OnClick="btnSubmite_Click" />
            </p>
        </form>
    </body>
    </html>
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Data.SqlClient;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    namespace WebApplication1.Person
    {
        public partial class SavePerson : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    int id = Convert.ToInt32(Request["Id"] ?? "0");
                    hidId.Value = id+string.Empty; 
                    BindData(id);
                } 
            }
            private void BindData(int id)
            { 
                string sqlPerson = "select Age,Sex,UserName from tb_Person where id=" + id;
                string sqlAge = "select *from tb_Sex";
                DataTable dtAge = new DataTable();
                DataTable dtPerson = new DataTable(); 
                using (MSSqlHelper context = new MSSqlHelper())
                {
                    dtAge = context.ExecuteDataTable(sqlAge);
                    dtPerson = context.ExecuteDataTable(sqlPerson);
                } 
                //年龄绑定
                for (int i = 1; i < 120; i++)
                {
                    ddlAge.Items.Add(new ListItem(i.ToString()));
                } 
                //性别绑定 
                foreach (DataRow row in dtAge.Rows)
                {
                    rbtnListSex.Items.Add(new ListItem(row["SexName"].ToString(), row["Id"].ToString()));
                } 
                foreach (DataRow row in dtPerson.Rows)
                {
                    ddlAge.SelectedIndex = Convert.ToInt32(row["Age"])-1;
                    rbtnListSex.SelectedValue = Convert.ToString(row["Sex"]); 
                    txtUserName.Text =Convert.ToString( row["UserName"]);
                }
            }
    
            protected void btnSubmite_Click(object sender, EventArgs e)
            {
                int id =Convert.ToInt32( this.hidId.Value);
                string sql = "";
                if (id > 0)
                {
                    sql = "UPDATE [Demo].[dbo].[tb_Person] SET[UserName] = @UserName,[Age] = @Age,[Sex] = @Sex WHERE Id=@Id";
                }
                else
                {
                    sql = "INSERT INTO [Demo].[dbo].[tb_Person]([UserName],[Age],[Sex])VALUES(@UserName,@Age,@Sex)";
                }
                SqlParameter[] param = new[] {
                    new SqlParameter("@UserName",this.txtUserName.Text),
                     new SqlParameter("@Age",this.ddlAge.SelectedValue),
                      new SqlParameter("@Sex",this.rbtnListSex.SelectedValue),
                       new SqlParameter("@Id",id),
                }; 
                using (MSSqlHelper contenxt = new MSSqlHelper())
                {
                    contenxt.ExecuteNonQuery(sql, param);
                    Response.Redirect("~/Person/List.aspx"); 
                }
            }
        }
    }

    三、详细页面

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Detail.aspx.cs" Inherits="WebApplication1.Person.PersonDetail" %>
    
    <!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>
    </head>
    <body>
        <p>
            <label>姓名</label><asp:Label ID="lbUserName" runat="server" ></asp:Label>
        </p>
        <p>
            <label>年龄</label><asp:Label ID="lbAge" runat="server" ></asp:Label>
        </p>
        <p>
            <label>性别</label><asp:Label ID="lbSexName" runat="server"></asp:Label>
        </p>
        <p>
            &nbsp;<input type="button" value="返回" onclick="window.location.href='/Person/List.aspx'" />
        </p>
    </body>
    </html>
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Data.SqlClient;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    namespace WebApplication1.Person
    {
        public partial class PersonDetail : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                string sql = "select p.*,s.SexName from tb_Person p left join tb_Sex s on p.Sex=s.Id where p.Id=@Id";
                DataTable dt = new DataTable();
                using (MSSqlHelper context = new MSSqlHelper())
                {
                    dt = context.ExecuteDataTable(sql,new SqlParameter("@Id",Request["Id"]));
                } 
                foreach (DataRow row in dt.Rows)
                {
                    lbAge.Text = Convert.ToString(row["Age"]);
                    lbSexName.Text = Convert.ToString(row["SexName"]);
                    lbUserName.Text = Convert.ToString(row["UserName"]);  
                }
            }
        }
    }
  • 相关阅读:
    C# WPF之Material Design自定义颜色
    C# WPF从RIOT API获取数据(RIOT代表作品《英雄联盟》)
    C# WPF聊天界面(3/3)
    C# WPF简况(2/3)
    C# WPF联系人列表(1/3)
    使用SignalR从服务端主动推送警报日志到各种终端(桌面、移动、网页)
    为什么Node.JS会受到青睐?
    2017级面向对象程序设计——团队作业1
    2017级面向对象程序设计 作业三
    如果抽不出时间写博客怎么办
  • 原文地址:https://www.cnblogs.com/5tomorrow/p/5215067.html
Copyright © 2020-2023  润新知