读使用反射将业务对象绑定到 ASP.NET 窗体控件有感

将页面与实体关联的方法:我也写了一个

编辑控件前台edit.ascx

 

<% @ Control Language = " C# "  AutoEventWireup = " true "  CodeFile = " edit.ascx.cs "  Inherits = " edit "   %>
< asp:Label ID = " Label1 "  runat = " server "  Text = " 编号 " ></ asp:Label >
< asp:TextBox ID = " txtID "  runat = " server " ></ asp:TextBox >
< br  />
< asp:Label ID = " Label2 "  runat = " server "  Text = " 姓名 " ></ asp:Label >
< asp:TextBox ID = " txtName "  runat = " server " ></ asp:TextBox >
< br  />
< asp:Label ID = " Label3 "  runat = " server "  Text = " 密码 " ></ asp:Label >
< asp:TextBox ID = " txtPwd "  runat = " server " ></ asp:TextBox >
< br  />
< asp:Button ID = " btnOp "  runat = " server "  Text = " 操作 "   />
< asp:Button ID = " btnBack "  runat = " server "  Text = " 返回 "   />

 

后台代码edit.ascx.cs

 

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;

public   partial   class  edit : System.Web.UI.UserControl
{
    
public int UserId
    
{
        
set
        
{
            
this.txtID.Text = value.ToString();
        }

        
get
        
{
            
if (this.txtID.Text != "")
                
return int.Parse(this.txtID.Text);
            
return 0;
        }

    }

    
public string UserName
    
{
        
set
        
{
            
this.txtName.Text = value;
        }

        
get
        
{
                
return this.txtName.Text;
        }

    }

    
public string Password
    
{
        
set
        
{
            
this.txtPwd.Text = value.ToString();
        }

        
get
        
{
            
return this.txtPwd.Text;
        }

    }

    
protected void Page_Load(object sender, EventArgs e)
    
{
        
this.btnBack.Attributes.Add("onclick""history.go(-1);");
    }

}

前台显示的后台代码eidt.aspx.cs

 

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.Reflection;

public   partial   class  edit : System.Web.UI.Page
{
    
protected void Page_Load(object sender, EventArgs e)
    
{
        
         User user=new User(95,"test","test");
         PropertyInfo[] objProperties 
= user.GetType().GetProperties();
         PropertyInfo[] ctlProperties 
= this.Edit1.GetType().GetProperties();
                    //public static object CopyProperty(object obj1, object obj2)
        //{
        //    Type souType = user.GetType();
        //    Type tarType = this.Edit1.GetType();
        //    PropertyInfo[] pis = souType.GetProperties(BindingFlags.Public | BindingFlags.Instance);
        //    if (null != pis)
        //    {
        //        foreach (PropertyInfo pi in pis)
        //        {
        //            string propertyName = pi.Name;
        //            PropertyInfo pit = tarType.GetProperty(propertyName);
        //            if (pit != null)
        //            {
        //                pit.SetValue(obj2, pi.GetValue(obj1, null), null);
        //            }
        //        }
        //    }
        //    return obj2;
        //}以下代码可被以上注释的代码替换
         
foreach (PropertyInfo objProperty in objProperties)
         
{
             
foreach (PropertyInfo ctlProperty in ctlProperties)
             
{
                 
if (objProperty.Name == ctlProperty.Name)
                 
{
                     ctlProperty.SetValue(
this.Edit1, objProperty.GetValue(user, null), null);
                     break;

                 }

             }

         }

    }

}

前台eidt.aspx代码

 

<% @ Page Language = " C# "  AutoEventWireup = " true "  CodeFile = " edit.aspx.cs "  Inherits = " edit "  Debug = " true "   %>

<% @ Register Src = " edit.ascx "  TagName = " edit "  TagPrefix = " uc1 "   %>

<! 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 > Untitled Page </ title >
</ head >
< body >
    
< form id = " form1 "  runat = " server " >
    
< div >
        
< uc1:edit id = " Edit1 "  runat = " server " >
        
</ uc1:edit ></ div >
    
</ form >
</ body >
</ html >

实体类代码:

 

using  System;
using  System.Data;
using  System.Configuration;
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;

/// <summary>
/// Summary description for User
/// </summary>

public   class  User
{
    
"Fields and Properties"
    
"Constructors"
}

以上理解失误:请见http://blog.csdn.net/beimuaihui/archive/2007/09/14/1785035.aspx

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 、 1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READmE.文件(md如有),本项目仅用作交流学习参考,请切勿用于商业用途。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值