2008-09-16 61 views
1

我已經爲Sharepoint構建了一個Web部件,用於從外部服務中檢索數據。我想用與Sharepoint的UI兼容的方式顯示這些項目(適合於它的環境)。Sharepoint:使用「兼容」UI顯示非Sharepoint內容列表的最佳方式?

我知道「DataFormWebPart」,但無法正常工作。它需要一個有效的DataSource,我無法從Web服務調用的結果中構建一個...部分問題是我的Web服務包裝器不公開XML返回信息,而是我有一堆反序列化的對象。似乎並沒有簡單的方法將實際對象轉換爲數據源,或者從對象數據中填充「通用」數據源。

我可以使用SPGridView來獲得相同的用戶界面,但是網格控件沒有太多智能的方法 - 並且它會將每個字段強制到自己的列中。我寧願將每個列表項都渲染爲具有複雜渲染的單個單元格(例如,StackOverflow顯示其問題列表的方式)。我還想盡可能多地獲取Sharepoint標準UI,例如排序,過濾和分頁控制。

所以,第一:這裏有沒有人寫過一個Sharepoint控件來做到這一點,如果是的話,你有樣本代碼分享?如果不是:我忽略了一些有用的控制,不管是MS提供的還是外部庫中的可用控件?

謝謝! Steve

回答

2

的Sharepoint:與 「兼容」 UI顯示的非SharePoint內容列表 最佳方式嗎?

看看內置的的SharePoint Web控件:

Microsoft.SharePoint.WebControls Namespace

它包含在SharePoint中使用的所有控件。我會告訴你更多,但文件是非常徹底的。

0

SharePoint的問題是有很多不同的方法可以做到這一點。如果你的數據沒有經常變化,並且不是太大,那麼可以考慮將它輸入列表中以供顯示。 如果您擁有Enterprise許可證,可能需要將數據存入BDC並在其中使用。 您可能必須將對象轉換爲xml或使用帶有XML webpart的序列化對象才能顯示。這仍然存在使用XSLT進行自定義呈現的問題。

+0

Thanks Nat。外部數據很大(外部搜索結果),因此無法將其保留爲新列表。我們是一個SharePoint插件,因此我無法保證BDC在所有安裝中都可用。我想我對你的建議有點不好意思,但我很欣賞答案! – 2008-09-16 21:55:22

0

這裏有一個偉大的文章,解釋瞭如何使用BDC定義編輯器配置Web服務BDC連接:

創建通過使用業務數據目錄定義編輯器 http://msdn.microsoft.com/en-us/library/bb737887.aspx

+0

不幸的是我需要一些不同的東西:我正在構建一個Web部件,它需要顯示Web服務調用的實時結果 - 它不是常規搜索結果的一部分。不過謝謝,這是一個非常有用的鏈接,我正在處理的其他事情涉及修改搜索頁面! – 2008-09-17 02:44:01

0

的Web服務連接做這件事的最好方法是製作一個Web部件。作爲Web部件,用戶界面將自動呈現爲與網站使用的主題相同(除非您覆蓋該主題),並且任何具有管理員權限的人都可以將其放置在任何位置。

+0

我很欣賞答案。但這是我已經採取的一個介紹性步驟。我的問題有點進一步;我有一個現有的Web部件,需要添加一個列表。似乎沒有簡單的方法來創建我需要的那種網頁部分 - 但我會深入到您的網站並看看! – 2008-09-17 05:32:40

0

您可以創建自定義Web部件並使用SPGridView。你說你不喜歡它,因爲它會將每個領域強制到自己的專欄中,但事實並非如此。您可以爲每一列創建一個模板(ITemplate),並完全自定義內部顯示的內容,就像使用普通的ASP.Net GridView一樣。使用這種方法,我在列表項的標題旁邊添加了小「新」圖像,就像SharePoint本身一樣。