ASP.NET偷懶大法一

來源:互聯網
上載者:User

為啥要起這個名字呢?因為我懶,真的很懶,懶到能剩一行代碼我就不想多寫一行代碼。新的公司,新的項目,組長老說我的辦法屬於偷懶的方法,那俺就把這些偷懶的方法記錄下來吧,說不定偷懶也有偷懶的好處的:)

做b/s的,經常要對資料操作,大部分是添加、修改、刪除、查詢 這樣的操作,對於查詢表現到介面上就是資料列表。最常用的控制項就是DataList DataGrid Repeater這些資料繫結控制項。其中Repeater是我最常用的,因為他產生的程式碼最少,自訂功能也強。大多時候就是拖控制項,在ItemTemplate項裡面加上html的樣式,在需要顯示資料的地方放上Literal,然後在ItemDataBound裡面寫資料繫結的代碼。天天重複的勞動,特別是在ItemTemplate中需要繫結項目多的時候,常常讓我厭煩。有沒有什麼辦法讓程式自己給你做這些事情呢?

其實很簡單就能實現,重寫Repeater控制項,讓ItemDataBound事件自動遍曆ItemTemplate中的控制項,然後自己按照控制項名字綁定資料。

protected override void OnItemDataBound(RepeaterItemEventArgs e){if (e.Item.ItemIndex >= 0){foreach (Control var in e.Item.Controls){if (var.ID != null){string text = "";if (e.Item.DataItem.GetType().Name == "DataRowView"){DataRowView dr = (e.Item.DataItem as DataRowView);if (dr.DataView.Table.Columns.Contains(var.ID))text = dr[var.ID].ToString();}switch (ControlType.Name){case "Literal":(var as Literal).Text = text;break;case "Image":(var as Image).ImageUrl = text;break;}}}}base.OnItemDataBound(e);}

很簡單吧,在switch裡面可以按照你的要求加任意的控制項類型。只要你ItemTemplate中的控制項ID和DataSet中的名稱一樣就自動綁定。如果不一樣就不管啦。你還是可以在aspx裡面做二次處理。

不過這裡有個問題,只能處理資料來源是Dataset的,現在都流行orm了,後台都有代碼產生器了,難道前台還要自己寫代碼嗎?
現在就可以拿出我們asp.net的利器啦。【反射】太棒的功能了,讓我們可以做更多的事情。其實思路也是類似的留到下一篇寫吧!:-)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.