程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> 通過BCS對象模型使用篩選器

通過BCS對象模型使用篩選器

編輯:關於.NET

在上一篇博文中,我們介紹了如何使用SharePoint服務器上的業務連接服務對 象模型連接到BCS服務元數據存儲,來獲取一個企業核心業務系統對象、外部內容 類型及其方法,以及如何執行一個外部內容類型的方法。

本文將演示如何執行一個帶有篩選器定義的外部內容類型的Finder方法。

步驟

1、使用SharePoint Designer 2010創建一個新的外部內容類型,使用 AdventureWorks2000數據庫的Employees表。 為該ECT在First Name一欄上設置一 個篩選器。

請注意,我們選中了復選框“如果為以下值,則忽略篩選器”。

2、打開Visual Studio 2010並從SharePoint2010項目分類中選擇新建一個“ 可視 Web 部件”項目。

3、在該webpart用戶控件的設計模式下,添加一些文字“First Name:”。然 後拖放一個文本框和一個按鈕。設置文本框的ID為FirstNameTextbox,按鈕的ID 為SearchButton。最後,添加一個GridView。完成後的界面如下圖:

4、我們需要添加一個引用到Microsoft.BusinessData.dll,在解決方案資源 管理器中右擊“引用”文件夾,選擇“添加引用”。 浏覽到該dll:

c:\program files\common files\microsoft shared\web server extensions\14\ISAPI\Microsoft.BusinessData.dll

5、打開用戶控件—— VisualWebPart1UserControl.ascx.cs,添加下列using 語句:

using Microsoft.SharePoint;
using Microsoft.SharePoint.BusinessData.SharedService;
using Microsoft.BusinessData.MetadataModel;
using Microsoft.SharePoint.Administration;
using Microsoft.BusinessData.Runtime;
using Microsoft.SharePoint.BusinessData.Runtime;

6、添加下列方法:

private void executeFilterMethod()
{
     //獲取實體的目錄以便開始我們的工作
     BdcService service =  SPFarm.Local.Services.GetValue<BdcService>();
     IMetadataCatalog catalog =  service.GetDatabaseBackedMetadataCatalog(SPServiceContext.Current);
     //獲取Employee外部內容類型
     IEntity entity = catalog.GetEntity("http://contoso14",  "Employee");
     //獲得默認的Finder方法的篩選器
     IFilterCollection filters =  entity.GetDefaultFinderFilters();
     //如果FirstNameTextBox有值則設置篩選器值
     if (FirstNameTextBox.Text != string.Empty)
     {
         WildcardFilter filter = (WildcardFilter)filters [0];
         filter.Value = FirstNameTextBox.Text;
     }
     //通過默認的Finder方法返回篩選後的數據
     IEntityInstanceEnumerator enumerator =  entity.FindFiltered(filters, entity.GetLobSystem ().GetLobSystemInstances()[0].Value);

     DataTable table = null;
     //循環遍歷返回的數據
     while (enumerator.MoveNext())
     {
         //第一次時設置數據表,以後直接添加行
         if (table == null)
             table =  enumerator.Current.EntityAsDataTable;
         else
             table.ImportRow (enumerator.Current.EntityAsDataTable.Rows[0]);
     }
     //綁定數據到我們的GridView
     GridView1.DataSource = table;
     GridView1.DataBind();
}

7、雙擊我們用戶控件上的按鈕,添加一個點擊事件處理程序,內容很簡單, 直接調用上面的方法即可:

protected void SearchButton_Click(object sender, EventArgs  e)
{
     executeFilterMethod();
}

8、所有的代碼工作都完成了,現在我們可以按F5鍵運行了。Visual Studio會 幫我們打成wsp包並部署到我們的網站。

當 SharePoint打開後,進入頁面編輯模式,插入一個webpart。我們的 VisualWebPart1位於Custom分組下。添加好後,點擊 Button按鈕,你將會從 Employee外部內容類型返回所有的數據,或者也可以輸入一個first name比如 Linda,就會返回符合條件的結果:

在接下來的文章中,我們會進一步介紹bcs的對象模型。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved