這段時間一直在做公司的項目,突然間有這麼一個想法,其實邏輯方便的還好,可是當我們想把前臺控制項的值賦給對象時,或者是對象的值賦值給前臺控制項。我們每天都做著相同的事情,這著實是一個讓人鬱悶的事情。沒有辦法,我們每天的工作無外乎就是Ctrl+C,然後Ctrl+V最後把ID什麼的改改,有用的用,沒有用的.....
這段時間一直在做公司的項目,突然間有這麼一個想法,其實邏輯方便的還好,可是當我們想把前臺控制項的值賦給對象時,或者是對象的值賦值給前臺控制項。我們每天都做著相同的事情,這著實是一個讓人鬱悶的事情。沒有辦法,我們每天的工作無外乎就是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 }自動為對象賦值的方法
今天先就寫這麼多,希望能對大家有點用處!