2010-04-13 95 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