读使用反射将业务对象绑定到 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 窗体控件

使用反射将业务对象绑定到 ASP.NET 窗体控件发布日期: 12/10/2004 | 更新日期: 12/10/2004John DyerDallas Theological Seminary适用于:...
  • powerboy
  • powerboy
  • 2007年09月25日 21:49
  • 262

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

使用反射将业务对象绑定到 ASP.NET 窗体控件发布日期: 12/10/2004 | 更新日期: 12/10/2004John DyerDallas Theological Seminary适用于:...
  • hzfu007
  • hzfu007
  • 2007年09月25日 11:34
  • 621

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

将页面与实体关联的方法:我也写了一个编辑控件前台edit.ascx @ Control Language="C#" AutoEventWireup="true" CodeFile="edit.ascx...
  • beimuaihui
  • beimuaihui
  • 2007年09月13日 10:45
  • 456

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

使用反射将业务对象绑定到 ASP.NET 窗体控件发布日期: 12/10/2004 | 更新日期: 12/10/2004John DyerDallas Theological Seminary适用于:...
  • Dream6000
  • Dream6000
  • 2006年11月07日 22:47
  • 863

WinForm中使用反射将业务对象绑定到窗体或控件容器

在WebForm中,可以使用反射将业务对象绑定到 ASP.NET 窗体控件。最近做Winform项目,也参考WebForm中的代码实现同样的功能。    Winform没有提供类似WebForm中的F...
  • educast
  • educast
  • 2009年07月22日 22:39
  • 977

vb.net利用反射实现字符串调用窗体功能

VB.NET取得项目中的所有窗体名称:       Dim a As Assembly = Assembly.GetExecutingAssembly '取得目前组件         ' VB.NET...
  • fengqingtao2008
  • fengqingtao2008
  • 2015年01月31日 13:04
  • 2001

读取XML文件动态绑定TreeView控件练习题

题目三:读取XML文件动态绑定TreeView控件 一、语言和环境 A、实现语言  C# B、环境要求  Visual Studio 2012 二、功能要求 现使用....
  • baidu_36074048
  • baidu_36074048
  • 2017年03月12日 16:18
  • 973

android通过反射代替R来获取控件对象

在android里通过xml布局文件寻找某个控件时,我们通常做法是通过R文件来指向 如: findById(R,id.xx); 但其实还有另外一种方法来获取控件 》》反射 如 : ...
  • a2855090
  • a2855090
  • 2014年01月29日 17:45
  • 1583

C# 反射动态创建窗体

        在现在写的一个控件中,我想根据窗体的设置进行加载窗体,因此使用反射,将窗体的信息添加到数据库中,不知道窗体在什么地方,也不知道窗体的更多信息,因此使用反射来创建窗体。       代...
  • zhangjp
  • zhangjp
  • 2008年01月15日 02:54
  • 5106

利用反射技术将查询结果封装为对象

public class ORMTest extends HttpServlet { private static final long serialVersionUID = 1L; p...
  • BuildingJiang
  • BuildingJiang
  • 2017年03月23日 14:15
  • 474
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:读使用反射将业务对象绑定到 ASP.NET 窗体控件有感(二)
举报原因:
原因补充:

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