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

原创 2007年09月14日 13:34:00

 看完pethsop4中的web/controls/Addressform.ascx之后,才发现对这篇文章理解有误,其实可以用控件来完成表单,而这个控件跟一个实体类一般是一对一,且属性相同,所有可以把这个实体类作为控件的属性,把控件的输入的控件的内容就等于这个实体类的属性。Addressform.ascx.cs代码如下:

 

using PetShop.Model;
using System.Text.RegularExpressions;

namespace PetShop.Web {

    
public partial class AddressForm : System.Web.UI.UserControl {
                        
        
/// <summary>
        
/// Control property to set or get the address
        
/// </summary>
        public AddressInfo Address {
            
get {

                
// Return null if control is empty
                if (string.IsNullOrEmpty(txtFirstName.Text) && 
                   
string.IsNullOrEmpty(txtLastName.Text) && 
                   
string.IsNullOrEmpty(txtAddress1.Text) && 
                   
string.IsNullOrEmpty(txtAddress2.Text) && 
                   
string.IsNullOrEmpty(txtCity.Text) && 
                   
string.IsNullOrEmpty(txtZip.Text) && 
                   
string.IsNullOrEmpty(txtEmail.Text) && 
                   
string.IsNullOrEmpty(txtPhone.Text))
                    
return null;

                
// Make sure we clean the input
                string firstName = WebUtility.InputText(txtFirstName.Text, 50);
                
string lastName = WebUtility.InputText(txtLastName.Text, 50);
                
string address1 = WebUtility.InputText(txtAddress1.Text, 50);
                
string address2 = WebUtility.InputText(txtAddress2.Text, 50);
                
string city = WebUtility.InputText(txtCity.Text, 50);
                
string zip = WebUtility.InputText(txtZip.Text, 10);
                
string phone = WebUtility.InputText(WebUtility.CleanNonWord(txtPhone.Text), 10);
                
string email = WebUtility.InputText(txtEmail.Text, 80);          
                
string state = WebUtility.InputText(listState.SelectedItem.Value, 2);
                
string country = WebUtility.InputText(listCountry.SelectedItem.Value, 50);
                
                
return new AddressInfo(firstName, lastName, address1, address2, city, state, zip, country, phone, email);
            }
            
set {
                
if(value != null) {
                    
if(!string.IsNullOrEmpty(value.FirstName))
                        txtFirstName.Text 
= value.FirstName;
                    
if(!string.IsNullOrEmpty(value.LastName))
                        txtLastName.Text 
= value.LastName;
                    
if(!string.IsNullOrEmpty(value.Address1))
                        txtAddress1.Text 
= value.Address1;
                    
if(!string.IsNullOrEmpty(value.Address2))
                        txtAddress2.Text 
= value.Address2;
                    
if(!string.IsNullOrEmpty(value.City))
                        txtCity.Text 
= value.City;
                    
if(!string.IsNullOrEmpty(value.Zip))
                        txtZip.Text 
= value.Zip;
                    
if(!string.IsNullOrEmpty(value.Phone))
                        txtPhone.Text 
= value.Phone;
                    
if(!string.IsNullOrEmpty(value.Email))
                        txtEmail.Text 
= value.Email;
                    
if(!string.IsNullOrEmpty(value.State)) {
                        listState.ClearSelection();
                        listState.SelectedValue 
= value.State;
                    }
                    
if(!string.IsNullOrEmpty(value.Country)) {
                        listCountry.ClearSelection();
                        listCountry.SelectedValue 
= value.Country;
                    }
                }
            } 
        }

    }
}

 

参考:

1.运用反射给实体赋值:http://dotnet.e800.com.cn/articles/2007/11/1167639881603150378_1.html 

2.面向对象开发中的数据控件绑定方案http://www.cchensoft.com/Articles/ArticleDetails.aspx?id=fzp2nm

 

相关文章推荐

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

发布日期 : 12/10/2004 | 更新日期 : 12/10/2004John DyerDallas Theological Seminary适用于:Microsoft Visual Studio...
  • wnety
  • wnety
  • 2011年07月10日 18:36
  • 387

ASP.NET利用反射进行物体与控件之间绑定

文单来自:http://bbs.blueidea.com/thread-2707666-1-1.html

asp.net中使用分页控件,并绑定数据到GridView或Repeater

/// /// (asp.net网页中)使用显示上下页的控件(LtpPageControl.Page02)--GridView /// ///...

ASP.NET中DropDownList控件的简单使用--DDL绑定数据库表中值,选择DDL中值直接检索数据

这篇博客主要说一下DropDownList绑定数据库表中数据,及选择相应DropDownList表中的值会根据此值从数据库中查询相应的数据信息。       一、简单介绍一下我要实现的功能...

ASP.NET中DropDownList控件的简单使用--DDL绑定数据库表中值,选择DDL中值直接检索数据

这篇博客主要说一下DropDownList绑定数据库表中数据,及选择相应DropDownList表中的值会根据此值从数据库中查询相应的数据信息。       一、简单介绍一下我要实现的功能   ...

ASP.NET 弹出窗体选择控件

" type="text/css" rel="stylesheet">  

ASP.NET-008—JS绑定控件事件

  • 2014年03月31日 22:35
  • 156KB
  • 下载

ASP.NET-008—JS绑定控件事件

界面上的事件一般可以通过控件自带的事件属性添加事件。其实还有一个方式,就是让JS来给控件绑定事件,这样一来就可以实现控件的事件动态进行变化,在实现功能的时候会更加方便。JS绑定控件事件的格式如下: $...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:读使用反射将业务对象绑定到 ASP.NET 窗体控件有感(二)
举报原因:
原因补充:

(最多只允许输入30个字)