小喵剛好最近用到這樣的方式,在使用ObjectDataSource的時候,會寫個Class並撰寫裡面的Function,然後讓這個Object與Function透過ObjectDataSource與某個控制項的新增、修改、刪除、查詢等事件結合。而如果Function的參數不再是單純的某個變數的某種型態,而是一個物件或者物件集合(List(Of MyObject))這樣的話,應該如何透過ObjectDataSource來傳遞物件參數呢?我們看下去…
緣起
小喵剛好最近用到這樣的方式,在使用ObjectDataSource的時候,會寫個Class並撰寫裡面的Function,然後讓這個Object與Function透過ObjectDataSource與某個控制項的新增、修改、刪除、查詢等事件結合。而如果Function的參數不再是單純的某個變數的某種型態,而是一個物件或者物件集合(List(Of MyObject))這樣的話,應該如何透過ObjectDataSource來傳遞物件參數呢?我們看下去…
一般設定參數寫在控制項的ing事件
以GirdView為例子,一般如果要Update的時候傳遞個參數進去,通常會寫在GridView的Updating事件中,例如以下:
Me.ObjectDataSource1.UpdateParameters("UsrID").DefaultValue=User.Identity.Name
以這樣的方式傳遞單一值來處理,但是,如果是要傳遞的是某個物件(例如:一個DataTable),該如何做呢?
物件參數寫在ObjectDataSource的ing事件中
這篇的重點就在這裡了,要透過ObjectDataSource傳遞物件給ObjectDataSource搭配的Function時,透過ObjectDataSource的ing事件來處理,例如Updating
Protected Sub odsRltPrg_Updating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.ObjectDataSourceSelectingEventArgs) Handles odsRltPrg.Updating Dim dtRlt As DataTable = CType(ViewState("dtRlt"), DataTable) If dtRlt Is Nothing Then dtRlt = New DataTable End If e.InputParameters("dtRlt") = dtRlt End Sub
以下是簽名:
- 歡迎轉貼本站的文章,不過請在貼文主旨上加上【轉貼】,並在文章中附上本篇的超連結與站名【topcat姍舞之間的極度凝聚】,感恩大家的配合。
- 小喵大部分的文章會以小喵熟悉的語言VB.NET撰寫,如果您需要C#的Code,也許您可以試著用線上的工具進行轉換,這裡提供幾個參考
Microsoft MVP Visual Studio and Development Technologies (2005~2019/6) | topcat Blog:http://www.dotblogs.com.tw/topcat |