ASP.NET 2.0數(shù)據(jù)教程:SelectMethod屬性的使用
最后一部我們舉例說明如何顯示雇用周年紀念在本月份的員工。首先,添加一個GridView控件到頁面ProgrammaticParams.aspx,該頁面在文件夾BasicReporting里。添加一個新的ObjectDataSource控件作為它的數(shù)據(jù)源。配置ObjectDataSource使用類EmployeesBLL并指定SelectMethod屬性為GetEmployeesByHiredDateMonth(month)。
圖 6: 使用EmployeesBLL 類
SelectMethod: 選擇GetEmployeesByHiredDateMonth(month)方法
最后一屏要求我們給month參數(shù)提供參數(shù)源。既然我們將編碼設(shè)置這個值,就讓參數(shù)源維持它的默認選項None,點擊“完成”。
圖 8: 讓參數(shù)源設(shè)置為None
這將在ObjectDataSource的SelectParameters集合里創(chuàng)建一個未指定參數(shù)值的Parameter對象。
- < asp:ObjectDataSource ID="ObjectDataSource1" runat="server" OldValuesParameterFormatString="original_{0}"
- SelectMethod="GetEmployeesByHiredDateMonth" TypeName="EmployeesBLL">
- < SelectParameters>
- < asp:Parameter Name="month" Type="Int32" />
- < /SelectParameters>
- < /asp:ObjectDataSource>
要編碼設(shè)置這個參數(shù)值,我們需要給ObjectDataSource的Selecting事件添加一個事件委托。為了實現(xiàn)這一點,到設(shè)計視圖里在ObjectDataSource上雙擊。另一種方式是選中ObjectDataSource在屬性窗口里點擊黃色閃電小圖標(biāo),然后,直接在Selecting這一欄里雙擊或者輸入一個你要使用的事件委托的名稱。
圖 9:點擊屬性窗口里的閃電圖標(biāo)列出Web控件的所有事件
兩種途徑都可以在頁面的代碼隱藏類里增加一個對ObjectDataSource的Selecting事件的事件委托。在這個事件委托里,我們可以通過使用e.InputParameters[parameterName]讀取參數(shù)的值,其中parameterName的值是< asp:Parameter>標(biāo)簽里的屬性Name的值(InputParameters也可以按照索引訪問,用e.InputParameters[index])。為了把month參數(shù)設(shè)置為當(dāng)前月份,需要在Selecting事件委托里加入如下代碼:
- protected void ObjectDataSource1_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
- {
- e.InputParameters["month"] = DateTime.Now.Month;
- }
當(dāng)通過瀏覽器訪問該頁面,我們可以看到只有一個員工是在當(dāng)前月份(三月)雇用的:Laura Callahan,他從1994年3月開始雇用。
圖 10: 雇用周年紀念日在本月份的員工被顯示出來了
這樣就通過SelectMethod屬性實現(xiàn)了顯示指定范圍內(nèi)的對象。
【編輯推薦】