ASP.NET 2.0數據教程之六:編程設置ObjectDataSource的參數值
[2] ASP.NET 2.0數據教程之六:編程設置ObjectDataSource的參數值
[3] ASP.NET 2.0數據教程之六:編程設置ObjectDataSource的參數值
[4] ASP.NET 2.0數據教程之六:編程設置ObjectDataSource的參數值
系列文章導航:
ASP.NET 2.0數據教程之四:使用ObjectDataSource展現數據
ASP.NET 2.0數據教程之六:編程設置ObjectDataSource的參數值
ASP.NET 2.0數據教程之七:使用DropDownList過濾的主/從報表
ASP.NET 2.0數據教程之八:使用兩個DropDownList過濾的主/從報表
ASP.NET 2.0數據教程之十:使用 GridView 和DetailView實現的主/從報表
ASP.NET 2.0數據教程之十一:基于數據的自定義格式化
ASP.NET 2.0數據教程之十二:在GridView控件中使用TemplateField
導言
正如我們在上一節的教程中所看到的,有很多可供選擇的方式把參數的值傳遞到OjbectDataSource的方法里。假如參數值是采用硬編碼方式,來源于頁面上的一個Web控件,又或者其他可被數據源Parameter對象讀取的源,那么這個值可以綁定到輸入參數而不需要寫一行的代碼。
然而有些時候,參數值來自某些在數據源的內置Parameter對象里還沒有計算出來的源。假如我們的站點支持我們的考慮那么我們也許希望參數基于當前登錄用戶。又或者我們在參數傳送到ObjectDataSource的隱含對象的方法前做一些客戶化定制。
無論什么時候調用ObjectDataSource的Seelect方法,它都會首先觸發它的Selecting事件,然后才調用ObjectDataSource的隱含對象的方法,完成后則激發ObjectDataSource ObjectDataSource的Selected 事件(圖一說明這些事件的順序)。可以在Selecting事件的事件委托中對參數的值進行設置或更改。
圖 1: ObjectDataSource的Selected 和 Selecting 事件分別在調用它的隱含對象的方法之前和之后觸發
這一節里我們將看看添加一個接受一個輸入參數方法到DAL和BLL層,參數名為Month,int類型,方法返回一個EmployeesDataTable對象,里邊包含的是雇傭周年紀念都指定月份的雇員。我們的例子將編碼設置為基于當前月份,顯示一個“本月雇用周年紀念員工”列表。
讓我們開始吧!