2010-04-13 39 views
1

我試圖發佈一些jQuery和其他Javascript將隱藏和顯示在頁面上的WebParts。我希望做的是找到一兩件事情:獲取WebPart在SharePoint 2007中的GUID

  • 表單元格包含的WebPart(即MSOZoneCell_WebPartWPQ5)的ID
  • ,顯示在該Web部件的DIV標籤的WebPartID HTML(即WebPartID = 「059611a7-ADEF-479e-bda9-fe5799dc62d1」)

我看在區域中的WebParts我想用下面的代碼的影響:

 System.Web.UI.WebControls.WebParts.WebPartZoneBase 
     myZone = this.Zone; 

     if (myZone != null) 
     { 

      for (int i = 0; i < myZone.WebParts.Count; i++) 
      { 
       // Get the web part 
       System.Web.UI.WebControls.WebParts.WebPart wp = 
        myZone.WebParts[i] as System.Web.UI.WebControls.WebParts.WebPart; 
       if (wp != null) 
       { 
        // Build an XPath query to get the attribute for 
        // this web part 
        string xpathQuery = "/tabs/tab[@name='" + wp.Title + "']"; 

        XmlElement wpElement = 
         tabConfigDoc.SelectSingleNode(xpathQuery) as XmlElement; 

        if (wpElement != null) 
        {        
         hideTabsJS.AppendFormat("$(\"#{0}\").hide(); ", wp.ID); 
         //switchTabsJS.AppendFormat("$(\"#{0}\").hide(); ", wp.ClientID); 
        } 
       } 
      } 

的p問題在於沒有任何WebPart或WebPartManager的API可以提供這些信息。是否有可能派生出兩個ID中的一個?

回答

1

我知道這是舊的,但我碰到它查詢其他東西,並認爲這可能是有益的「關閉它。」 Rob正在尋找的Microsoft.SharePoint.WebPartPages.WebPart屬性(並且很可能早就發現)屬性是StorageKey屬性。

+0

其實它沒有,我正在按照上述方式。感謝您的信息! – Rob 2010-11-22 14:56:30

1

只是好奇心,你有沒有嘗試鑄造網頁零件爲Microsoft.SharePoint.WebPartPages.WebPart並從中訪問ID?

(從http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webpartpages.webpart.id.aspx

+0

是的,ID屬性返回類似「g_059611a7_adef_479e_bda9_fe5799dc62d1」。我堅持只是做一個String.Replace來擺脫g_,然後再用短劃線替換下劃線?還是有更好的方法來做到這一點? – Rob 2010-04-13 21:15:20

+0

如果沒有任何屬性暴露,否則檢索此值,那麼它可能是唯一的方法來做到這一點。它不一定*太*缺乏優雅 – zincorp 2010-04-13 22:19:39