讓你的實體欄位和頁面上的控制項映射,自動綁定 — ObjectBinding1.0

來源:互聯網
上載者:User
背景:使用asp.net開發,在編輯或新增一條記錄時,你要把你的資料一個個賦值到頁面上的控制項去如:
Job job=.....;//擷取一個Job實體
this.textbox1.Text=job.Name;
this.textbox2.Text=job.Position;
this.DropDownList1.SelectedValue=job.Grade;
....
....
由於基於bs的限制,控制項不能想cs那樣有(DataBindings)進階屬性,於是在這種情況下,我自己封裝了一個類似於中介軟體的控制項 ObjectBinding,把實體欄位和頁面上的控制項映射,實現自動綁定。

下面就示範一下,如何在asp.net上使用:
1 首先把這控制項拖拽到頁面上:

2 設定ObjectBinding的SourceType和ItemsMappings屬性
SourceType即你的實體類型,類似與ObjectDataSource空間的TypeName,會自動載入所有的類型

ItemsMappings即建立控制項與欄位的映射,都只需要下拉選擇一下就行

3 OK,基本的設定就這麼多,現在我們在後台寫些代碼:public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            ObjectBinding1.DataSource = (new ClassLibrary.Job()).getInstance();
            ObjectBinding1.DataBind();
        }
 
    }

    protected void Button1_Click1(object sender, EventArgs e) {
        ObjectBinding1.ControlBind();
        ClassLibrary.Job Job = ObjectBinding1.DataSource as ClassLibrary.Job;

        Response.Write("Job.ID:" + Job.ID + "--------------Job.Name:" + Job.Name);
    }
}


好了到此就能很好地顯示出來了,看看效果

到此,就簡單地介紹這麼多,至於源碼自己下載了去看吧,希望大家提些寶貴意見:)

修改: public sealed class ItemMappingCollection : System.Collections.ObjectModel.Collection<ItemMapping> 這邊以前繼承BindingList<ItemMapping> ,這樣的話,在頁面上會生一些如成itemmappings-allowedit等無用代碼
源碼下載

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.