一、平时我在Repeater控件中绑定一个用户控件时,都是用户控件的属性都是基本数据类型,然后在绑定中写道:
<asp:Repeater ID="rp_company" runat="server" EnableViewState="false"> <ItemTemplate> <uc3:CompanyListLabel ID="CompanyListLabel1" runat="server" Pkid='<%#Eval("Pkid")%>' AccountPkid='<%#Eval("AccountPkid")%>' BusinessScope='<%#Eval("BusinessScope")%>' City='<%#Eval("City")%>' CompanyName='<%#Eval("CompanyName")%>' IndustryPkid='<%#Eval("IndustryPkid")%>' MSNNumber='<%#Eval("MSNNumber")%>' Province='<%#Eval("Province")%>' QQNumber='<%#Eval("QQNumber")%>' Summary='<%#Eval("Summary")%>' ManagementModelText='<%#Eval("ManagementModelClass.ModelDescription") %>' PhotoImageUrl='<%#Eval("PhotoImageUrl")%>' IsAuthenticate='<%#Eval("IsAuthenticate") %>' IsFeePaying='<%#Eval("IsFeePaying") %>' StarLevel='<%#Eval("StarLevel")%>' /> </ItemTemplate> </asp:Repeater>
......一大把属性一一赋值,搞死人!
二、现在这样了,用户控件就一个属性,即它需要展示的那个类的对象,如:Company,Product……而不再需要将其属性一一列出了!(示例,csdn如何上传博客的附件呢??)
using System; using System.Collections.Generic; using System.Web; namespace EvalClassTest.Model { public class Person { public string CardId { get; set; } public string FullName { get; set; } public char Sex { get; set; } public int Age { get; set; } public string PhotoUrl { get; set; } } }
using System; using System.Collections.Generic; using System.Web; namespace EvalClassTest.Model { public class Family { public string FamilyId { get; set; } public string Address { get; set; } public Person Dad { get; set; } public Person Mom { get; set; } public Person Baby { get; set; } } }
using System; using System.Collections.Generic; using System.Web; using EvalClassTest.Model; namespace EvalClassTest.DataAccess { public class SchoolMeeting { public static List<Model.Family> GetFamilyList() { List<Model.Family> families = new List<EvalClassTest.Model.Family>(); //1. Model.Person p1_dad = new Person { CardId = "100001", FullName = "王伟", Age = 30, Sex = '男', PhotoUrl = @"/photos/王伟.jpg" }; Model.Person p1_mom = new Person { CardId = "500602", FullName = "李芳", Age = 28, Sex = '女', PhotoUrl = @"/photos/李芳.jpg" }; Model.Person p1_baby = new Person { CardId = "104502", FullName = "Beibei", Age = 2, Sex = '男', PhotoUrl = @"/photos/Beibei.jpg" }; Model.Family f1 = new Model.Family { FamilyId = "1001", Address = "北京", Dad = p1_dad, Mom = p1_mom, Baby = p1_baby }; families.Add(f1); //2. families.Add( new Model.Family { FamilyId = "2005", Address = "上海", Dad = new Person { CardId = "125874", FullName = "金士鹏", Sex = '男', Age = 26, PhotoUrl = @"/photos/金士鹏.jpg" }, Mom = new Person { CardId = "456980", FullName = "张颖", Sex = '女', Age = 25, PhotoUrl = @"/photos/张颖.jpg" }, Baby = new Person { CardId = "102587", FullName = "Jingjing", Sex = '女', Age = 1, PhotoUrl = @"/photos/Jingjing.jpg" } } ); //3. families.Add( new Model.Family { FamilyId = "6987", Address = "广州", Dad = new Person { CardId = "450012", FullName = "赵军", Sex = '男', Age = 35, PhotoUrl = @"/photos/赵军.jpg" }, Mom = new Person { CardId = "994578", FullName = "张雪眉", Sex = '女', Age = 31, PhotoUrl = @"/photos/张雪眉.jpg" }, Baby = new Person { CardId = "100052", FullName = "Huanhuan", Sex = '男', Age = 3, PhotoUrl = @"/photos/Huanhuan.jpg" } } ); //4. families.Add( new Model.Family { FamilyId = "4566", Address = "重庆", Dad = new Person { CardId = "459012", FullName = "孙林", Sex = '男', Age = 30, PhotoUrl = @"/photos/孙林.jpg" }, Mom = new Person { CardId = "999578", FullName = "刘英玫", Sex = '女', Age = 25, PhotoUrl = @"/photos/刘英玫.jpg" }, Baby = new Person { CardId = "109052", FullName = "Yingying", Sex = '女', Age = 2, PhotoUrl = @"/photos/Yingying.jpg" } } ); //5. families.Add( new Model.Family { FamilyId = "5678", Address = "武汉", Dad = new Person { CardId = "359012", FullName = "Andrew", Sex = '男', Age = 30, PhotoUrl = @"/photos/Andrew.jpg" }, Mom = new Person { CardId = "899578", FullName = "Anne", Sex = '女', Age = 25, PhotoUrl = @"/photos/Anne.jpg" }, Baby = new Person { CardId = "309052", FullName = "Nini", Sex = '女', Age = 2, PhotoUrl = @"/photos/Nini.jpg" } } ); return families; } public static List<Model.Person> GetStudents() { List<Model.Person> students = new List<Person>(); students.Add(new Person { CardId = "104502", FullName = "Beibei", Age = 2, Sex = '男', PhotoUrl = @"/photos/Beibei.jpg" }); students.Add(new Person { CardId = "102587", FullName = "Jingjing", Sex = '女', Age = 1, PhotoUrl = @"/photos/Jingjing.jpg" }); students.Add(new Person { CardId = "108052", FullName = "Huanhuan", Sex = '男', Age = 3, PhotoUrl = @"/photos/Huanhuan.jpg" }); students.Add(new Person { CardId = "105096", FullName = "Yingying", Sex = '女', Age = 2, PhotoUrl = @"/photos/Yingying.jpg" }); students.Add(new Person { CardId = "104099", FullName = "Nini", Sex = '女', Age = 1, PhotoUrl = @"/photos/Nini.jpg" }); return students; } } }
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="UcPerson.ascx.cs" Inherits="EvalClassTest.UserControls.UcPerson" %> <div style='width:320px; border:solid #bbb 1px;'> <div style="float:left; width:182px;"><img src="<%=UPerson.PhotoUrl%>" alt="" /></div> <div style="float:right" mce_style="float:right"> <ul> <li><span>社会保险号:</span><span><%=UPerson.CardId%></span></li> <li><span>姓名:</span><span><%=UPerson.FullName%></span></li> <li><span>性别:</span><span><%=UPerson.Sex%></span></li> <li><span>年龄:</span><span><%=UPerson.Age%></span></li> </ul> </div> <div style="clear:both" mce_style="clear:both"></div> </div>
using System; using System.Collections.Generic; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Drawing; using EvalClassTest.Model; namespace EvalClassTest.UserControls { public partial class UcPerson : System.Web.UI.UserControl { public Model.Person UPerson { get { if (_uperson == null) _uperson = new Model.Person(); return _uperson; } set { _uperson = value; } } private Model.Person _uperson; } }
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="UcFamily.ascx.cs" Inherits="EvalClassTest.UserControls.UcFamily" %> <%@ Register src="UcPerson.ascx" tagname="UcPerson" tagprefix="uc1" %> <div> <table border="0" cellpadding="0" cellspacing="0" style="margin-bottom:32px;" mce_style="margin-bottom:32px;"> <col style="width:30%;" /> <col style="width:40%;color:#00f; vertical-align:middle;" /> <col style="width:30%;" /> <tr> <th>dad</th> <th>baby</th> <th>mom</th> </tr> <tr> <td><uc1:UcPerson ID="UcPerson1" runat="server" UPerson='<%#UFamily.Dad%>' /></td> <td><uc1:UcPerson ID="UcPerson2" runat="server" UPerson='<%#UFamily.Baby%>' /></td> <td><uc1:UcPerson ID="UcPerson3" runat="server" UPerson='<%#UFamily.Mom%>' /></td> </tr> <tr> <th colspan="3" style="text-align:left;" mce_style="text-align:left;"> <ul> <li>家庭编号:<%#UFamily.FamilyId%></li> <li>家庭现住址:<%#UFamily.Address%></li> </ul> </th> </tr> </table> </div>
using System; using System.Collections.Generic; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using EvalClassTest.Model; namespace EvalClassTest.UserControls { public partial class UcFamily : System.Web.UI.UserControl { public Model.Family UFamily { get { if (_ufamily == null) _ufamily = new Model.Family(); if (_ufamily.Dad == null) _ufamily.Dad = new Person(); if (_ufamily.Mom == null) _ufamily.Mom = new Person(); if (_ufamily.Baby == null) _ufamily.Baby = new Person(); return _ufamily; } set { _ufamily = value; } } private Model.Family _ufamily; } }
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="EvalClassTest.WebForm1" %> <%@ Register src="UserControls/UcPerson.ascx" tagname="UcPerson" tagprefix="uc1" %> <%@ Register src="UserControls/UcFamily.ascx" tagname="UcFamily" tagprefix="uc2" %> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title></title> <mce:style type="text/css"><!-- *{ margin:0; padding:0;} body{background-color:#111; color:#eee; font-size:13px; font-family:MS Sans Serif,宋体;} ul,li{ list-style-type:none;} #div_main{width:980px; margin:0 auto; background-color:#eee; color:#111;} table{} th{background-color:#ccc;font-weight:bold; height:32px;} --></mce:style><style type="text/css" mce_bogus="1"> *{ margin:0; padding:0;} body{background-color:#111; color:#eee; font-size:13px; font-family:MS Sans Serif,宋体;} ul,li{ list-style-type:none;} #div_main{width:980px; margin:0 auto; background-color:#eee; color:#111;} table{} th{background-color:#ccc;font-weight:bold; height:32px;} </style> </head> <body> <div id="div_main"> <form id="form1" runat="server"></form> <!-- 1. --> <div> <uc1:UcPerson ID="UcPerson1" runat="server" /> </div> <br/><br/><br/><br/><br/><br/> <!-- 2. --> <div> <asp:Repeater ID="rp_people" runat="server"> <HeaderTemplate><ul></HeaderTemplate> <ItemTemplate><%--GetDataItem(),Container.DataItem, --%> <li><uc1:UcPerson ID="UcPerson1" runat="server" UPerson='<%#GetDataItem()%>' /></li> </ItemTemplate> <FooterTemplate></ul></FooterTemplate> </asp:Repeater> </div> <br/><br/><br/><br/><br/><br/> <!-- 3. --> <div> <uc2:UcFamily ID="UcFamily1" runat="server" /> </div> <br/><br/><br/><br/><br/><br/> <!-- 4. --> <div> <asp:Repeater ID="rp_families" runat="server"> <HeaderTemplate><ul></HeaderTemplate> <ItemTemplate><%--GetDataItem(),Container.DataItem, --%> <li><uc2:UcFamily ID="UcFamily1" runat="server" UFamily='<%#Container.DataItem%>' /></li> </ItemTemplate> <FooterTemplate></ul></FooterTemplate> </asp:Repeater> </div> <br/><br/><br/><br/><br/><br/> </div> </body> </html>
using System; using System.Collections.Generic; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using EvalClassTest.Model; using EvalClassTest.DataAccess; namespace EvalClassTest { public partial class WebForm1 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { //1. //UcPerson1.UPerson = // new Model.Person { CardId = "789654123312", FullName = "Margaret", Age = 34, Sex = '男', PhotoUrl = @"/photos/Margaret.jpg" }; //2. //this.rp_people.DataSource = DataAccess.SchoolMeeting.GetStudents(); //this.rp_people.DataBind(); //3. //this.UcFamily1.UFamily = new Family { // FamilyId = "112233", // Address = "深圳龙山", // Dad = new Person { CardId = "123321", FullName = "Steven", Sex = '男', Age = 30, PhotoUrl = @"/photos/Steven.jpg" }, // Mom = new Person { CardId = "456654", FullName = "Laura", Sex = '女', Age = 24, PhotoUrl = @"/photos/Laura.jpg" }, // Baby = new Person { CardId = "789987", FullName = "Cool", Sex = '男', Age = 1, PhotoUrl = @"/photos/Cool.jpg" } //}; //this.UcFamily1.DataBind();//注意,这个要绑定,不然不能显示,因为UcFamily用户控件里用到了绑定:“UPerson='<%#UFamily.Dad%>'” //4. this.rp_families.DataSource = DataAccess.SchoolMeeting.GetFamilyList(); this.rp_families.DataBind(); } } } }
博客园 © 2004-2025 浙公网安备 33010602011771号 浙ICP备2021040463号-3