2010-04-13 29 views
0

我正在使用由無關聯的第三方製作的自定義web部件。我創建了一個將此webpart添加到頁面的功能。它工作得很好,除了我無法弄清楚需要定義的特定屬性的名稱。我嘗試了與工具窗格視圖中的顯示名稱相匹配的明顯的名稱,在所述顯示名稱前添加了公司名稱以及許多類似的排列。所有這些都無濟於事。我更願意將該屬性包含到該功能中,因爲這將在未來在多個站點上部署。每次手動配置它都會給我的客戶帶來痛苦。確定用於XML的SharePoint Web部件中的屬性名稱

簡短明顯的答案是「詢問第三方」。這可能會起作用,尤其是對於這個特定的版本(這是一個CodePlex webpart,作者最近發佈了評論)。但是,我以前的第三方解決方案的經驗並不理想,通常甚至在三週後問我是否仍喜歡他們的產品時纔得到迴應。所以,因爲這並不總是一個可靠的方法來獲取這些信息,我認爲最好的選擇是找出一種方法來找出web部分中的屬性名稱,我不僅可以使用這個特定的屬性名稱,而且可以所有未來的情況。

我確實檢出了this earlier question,它解決了類似的問題。但是,我無法訪問Web部件的類,因此我無法在代碼中找到便於修改的屬性。或者,至少,如果我能以某種方式訪問​​它,我當然不知道它。

預先感謝您!

回答

1

根據我的理解,您嘗試設置某個不知道相應XML屬性名稱的某個Web部件屬性。

您是否嘗試導出Web部件?一個可能的檢查可能是嘗試導出webpart以查看webpart XML中出現的屬性。如果它是一個公共屬性,那麼webpart XML有可能已經定義了這個屬性,並且沒有值,例如

<data> 
    <properties> 
    <property name="Your property Name" type="yourType"></property> 
    <properties> 
</data> 

要導出Web部件,請轉到編輯頁面模式,單擊Web部件上的向下箭頭並選擇導出。

另外,如果你有一個dll的webpart代碼,你可以使用反射器來打開它,看看代碼中設置了什麼屬性?

希望這會有所幫助。

+0

@desigeek我試圖導出webpart。與我剛剛查看Web部件庫中的XML相比,它提供了更多的功能,因此明確指出了這一點。但不幸的是,該屬性似乎沒有被定義,即使我手動填寫了它。也許這個webpart在其他的網站中是一個古怪的。 我沒有(明知)在DLL中有webpart代碼,但我很確定它在GAC中才能正常工作。什麼是Reflector,我怎樣才能使用它來檢查DLL?一個簡單的鏈接將會做。 – 2010-04-13 15:39:37

+1

反射器是一個工具,允許您打開和檢查任何符合.net框架的dll。所以你可以從gac獲得這個DLL,並使用反射器來打開它。然後導航到Web部件的類並檢查Web部件代碼以找出屬性的設置位置和方式。你可以從www.red-gate.com/products/reflector/下載免費版本。 – desigeek 2010-04-13 15:44:51

+0

我很驚訝,只要我沒有這樣的工具,就已經擁有了。 – 2010-04-13 16:05:05

相關問題