zoukankan      html  css  js  c++  java
  • 做一个思想的码农

          这段时间一直在做公司的项目,突然间有这么一个想法,其实逻辑方便的还好,可是当我们想把前台控件的值赋给对象时,或者是对象的值赋值给前台控件。我们每天都做着相同的事情,这着实是一个让人郁闷的事情。没有办法,我们每天的工作无外乎就是Ctrl+C,然后Ctrl+V最后把ID什么的改改,有用的用,没有用的删除,然后在创建一个新的。突然发现我们实实在在的就是一个码农,和那些工地上搬砖的哥们们没有什么区别,无外乎就是他们用的是体力,我们只要细心点用用键盘就OK。好了说了这么多都是废话,那么我就直接上代码了,接招............

     1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="TestWeb._Default" %>
     2 
     3 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     4 
     5 <html xmlns="http://www.w3.org/1999/xhtml" >
     6 <head runat="server">
     7     <title>测试</title>
     8 </head>
     9 <body>
    10     <form id="form1" runat="server">
    11     <div>
    12     <input id="hlName" runat="server" value="1" />
    13     <asp:TextBox ID="hlCode" runat="server" Text="12"></asp:TextBox>
    14     </div>
    15     </form>
    16 </body>
    17 </html>
    前台代码
    那么我们先建一个对象,直接上代码!
     1 using System;
     2 using System.Data;
     3 using System.Configuration;
     4 using System.Linq;
     5 using System.Web;
     6 using System.Web.Security;
     7 using System.Web.UI;
     8 using System.Web.UI.HtmlControls;
     9 using System.Web.UI.WebControls;
    10 using System.Web.UI.WebControls.WebParts;
    11 using System.Xml.Linq;
    12 
    13 namespace TestWeb
    14 {
    15     public class Person
    16     {
    17         private string _Name;
    18         /// <summary>
    19         /// 名称
    20         /// </summary>
    21         public string Name
    22         {
    23             get { return _Name; }
    24             set { _Name = value; }
    25         }
    26         private string _Code;
    27         /// <summary>
    28         /// 编码
    29         /// </summary>
    30         public string Code
    31         {
    32             get { return _Code; }
    33             set { _Code = value; }
    34         }
    35     }
    36 }
    对象
    这时我们看看以前的做法是什么,虽然这种方法我用了很多次,但是这个时候我突然发现有一种想吐的冲动。如果这个对象我们有几十个属性,那么这是会不会死人?我想会的!
    using System;
    using System.Collections;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    
    namespace TestWeb
    {
        public partial class _Default : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                Person per = new Person();
                per.Name = "张三";
                per.Code = "434121312312";
                hlCode = per.Code;
                hlName = per.Name;
            }
        }
    }
    最原始的方法
    是不是感觉很爽?不用管你前台页面到底有多少的控件,来者不惧惧者不来!
     1 using System;
     2 using System.Collections;
     3 using System.Configuration;
     4 using System.Data;
     5 using System.Linq;
     6 using System.Web;
     7 using System.Web.Security;
     8 using System.Web.UI;
     9 using System.Web.UI.HtmlControls;
    10 using System.Web.UI.WebControls;
    11 using System.Web.UI.WebControls.WebParts;
    12 using System.Xml.Linq;
    13 using System.Reflection;
    14 
    15 namespace TestWeb
    16 {
    17     public partial class _Default : System.Web.UI.Page
    18     {
    19         protected void Page_Load(object sender, EventArgs e)
    20         {
    21             Fill(this);
    22         }
    23         /// <summary>
    24         /// 填充控件
    25         /// </summary>
    26         /// <param name="page"></param>
    27         public void Fill(System.Web.UI.Page page)
    28         {
    29             Person per = new Person();
    30             per.Name = "张三";
    31             per.Code = "434121312312";
    32             var type = per.GetType().GetProperties();
    33             foreach (PropertyInfo item in type)
    34             {
    35                 var s1 = page.FindControl("hl" + item.Name);
    36                 if (s1 != null)
    37                 {
    38                     TextBox t = (TextBox)s1;
    39                     t.Text = item.GetValue(per, null).ToString();
    40                 }
    41             }
    42 
    43         }
    44     }
    45 }
    新的方法

        

    那么我们用同样的道理来看看,我们前台赋值了,怎么去给对应的对象上赋值呢?其实这个也很简单。同样我们也对比一下以前的方法和现在的方法到底有什么区别。首先我们来看看以前的代码
     1 using System;
     2 using System.Collections;
     3 using System.Configuration;
     4 using System.Data;
     5 using System.Linq;
     6 using System.Web;
     7 using System.Web.Security;
     8 using System.Web.UI;
     9 using System.Web.UI.HtmlControls;
    10 using System.Web.UI.WebControls;
    11 using System.Web.UI.WebControls.WebParts;
    12 using System.Xml.Linq;
    13 using System.Reflection;
    14 
    15 namespace TestWeb
    16 {
    17     public partial class _Default : System.Web.UI.Page
    18     {
    19         protected void Page_Load(object sender, EventArgs e)
    20         {
    21             Person per = new Person();
    22             per.Name = hlName.Text;
    23             per.Code = hlCode.Text;
    24         } 
    25     }
    26 }
    以前的工作代码   
    现在我们再来看看我们新的方法,废话不多说直接上代码。
     1 using System;
     2 using System.Collections;
     3 using System.Configuration;
     4 using System.Data;
     5 using System.Linq;
     6 using System.Web;
     7 using System.Web.Security;
     8 using System.Web.UI;
     9 using System.Web.UI.HtmlControls;
    10 using System.Web.UI.WebControls;
    11 using System.Web.UI.WebControls.WebParts;
    12 using System.Xml.Linq;
    13 using System.Reflection;
    14 
    15 namespace TestWeb
    16 {
    17     public partial class _Default : System.Web.UI.Page
    18     {
    19         protected void Page_Load(object sender, EventArgs e)
    20         {
    21             Full(this);
    22         }
    23 
    24         public void Full(System.Web.UI.Page page)
    25         {
    26             Person per = new Person();
    27             var type = per.GetType().GetProperties();
    28             foreach (PropertyInfo item in type)
    29             {
    30                 var s1 = page.FindControl("hl" + item.Name);
    31                 if (s1 != null)
    32                 {
    33                     TextBox t = (TextBox)s1;
    34                     item.SetValue(per,t.Text, null);
    35                 }
    36             }
    37         }
    38     }
    39 }
    自动为对象赋值的方法

         今天先就写这么多,希望能对大家有点用处!

  • 相关阅读:
    [Java基础] 深入jar包:从jar包中读取资源文件
    [Git] git merge和rebase的区别
    windows和linux中换行符的转换
    使用 scikit-learn 实现多类别及多标签分类算法
    python 特征缺失值填充
    多输出回归问题
    python DataFrame获取行数、列数、索引及第几行第几列的值
    Xgboost 模型保存和载入()
    pandas所占内存释放
    SSE,MSE,RMSE,R-square 指标讲解
  • 原文地址:https://www.cnblogs.com/rocky987/p/5151693.html
Copyright © 2011-2022 走看看