【问题标题】:Determine the property name in a SharePoint Webpart for XML确定用于 XML 的 SharePoint Webpart 中的属性名称
【发布时间】:2011-02-07 12:20:48
【问题描述】:

我正在使用由非关联第三方制作的自定义 Web 部件。我创建了一个将此 web 部件添加到页面的功能。它工作得很好,除了我无法弄清楚需要定义的特定属性的名称。我尝试了与工具窗格视图上的显示名称相匹配的明显名称,在所述显示名称前添加公司名称,以及许多类似的排列。这一切都无济于事。我更愿意将属性包含在功能中,因为这对于将来跨多个站点进行部署是必要的。每次手动配置都会让我的客户感到痛苦。

简短而明显的答案是“询问第三方”。这可能会起作用,特别是对于这个特定的(它是 CodePlex 网络部件,作者最近在上周发表了评论)。但是我对以前的第三方解决方案的体验并不理想,通常甚至在三周后他们问我是否仍然喜欢他们的产品之前都没有得到回应。因此,由于这并不总是获取此信息的可靠方法,因此我认为最好的选择是找到一种方法来找出 Web 部件中的属性名称,我不仅可以将其用于这个特定的属性,还可以在所有未来的情况。

我确实查看了this earlier question,它解决了类似的主题。但是,我无权访问 webpart 的类,所以我不能只在代码中找到方便的属性来修改。或者,至少,如果我确实可以以某种方式访问​​它,我当然不会意识到它。

提前谢谢你!

【问题讨论】:

    标签: sharepoint xsd web-parts


    【解决方案1】:

    据我了解,您正在尝试设置某个您不知道相应 XML 属性名称的 webpart 属性。

    您是否尝试导出 Web 部件?一项可能的检查可能是尝试导出 Web 部件以查看 Web 部件 XML 中出现的属性。如果它是一个公共属性,那么 Webpart XML 很可能已经定义了该属性,但没有任何值,例如

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

    要导出 Web 部件,请转到“编辑页面”模式,单击 Web 部件上的向下箭头并选择“导出”。

    另外,如果你的 dll 中有 webpart 代码,你可以使用反射器打开它,看看代码中设置了哪些属性?

    希望这会有所帮助。

    【讨论】:

    • @desigeek 我尝试导出 webpart。这确实比我刚刚在 webpart 库中查看 XML 时提供的更多,因此绝对是 +1。但不幸的是,该属性似乎没有被定义,即使我手动填写了它。也许这个 webpart 在其他 webpart 中是个奇怪的东西。我没有(故意)在 DLL 中包含 webpart 代码,但我很确定它在 GAC 中以便它工作。什么是 Reflector,我如何使用它来检查 DLL?一个简单的链接就可以了。
    • Reflector 是一种工具,可让您打开和检查任何符合 .net 框架的 dll。因此,您可以从 gac 获取该 dll,并使用反射器将其打开。然后导航到 webpart 的类并检查 webpart 代码以找出属性的设置位置和方式。您可以从 www.red-gate.com/products/reflector/ 下载免费版本
    • 我很震惊,只要我没有这样的工具,我就已经走到了尽头。
    • 令我沮丧的是,虽然我通过 Reflector 获得了该属性,但似乎无法通过 XML 对其进行配置。我必须添加一个带有 SPLimittedWebPartManager 的接收器或 summat 来修复它。虽然问题没有解决,但问题本身确实已经回答了,所以我还是把它标记为接受。
    猜你喜欢
    • 2015-08-12
    • 2011-05-03
    • 2011-01-04
    • 2011-09-10
    • 1970-01-01
    • 1970-01-01
    • 2010-12-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多