我已经部署了一个共享点网页,并添加了一个自定义Web部件,该部件以客户希望的方式可视化数据。 Webpart的问题在于,当用户需要时,我们无法缩放,修改或隐藏它。我们考虑将Sharepoint Webpart嵌入Java包装器中。通常,在标准HTML页面上这很容易。问题是如何将Webpart嵌入到Sharepoint的Java包装器中?

我想添加2个html按钮,一个显示webpart,一个隐藏webpart。挑战在于找到可传递给任何按钮以执行hideMe或showMe Java脚本的Webpart ID。

Webpart标头:

<WebPartPages:WebPartZone runat="server" Title="loc:FullPage" ID="FullPage" FrameType="TitleBarOnly"><ZoneTemplate>
<WpNs0:Trend runat="server" __MarkupType="xmlmarkup" WebPart="true" __WebPartId="{AFA8DE0A-E7B4-4580-BFAB-038D96E72F0A}" >


代码(到目前为止)

<button onclick="HideWebpart('AFA8DE0A-E7B4-4580-BFAB-038D96E72F0A')">Hide Me</button>
<button onclick="ShowWebpart('AFA8DE0A-E7B4-4580-BFAB-038D96E72F0A')">Show Me</button>

<script>
function HideWebpart(AFA8DE0A-E7B4-4580-BFAB-038D96E72F0A)
{
    var wp=document.getElementById(AFA8DE0A-E7B4-4580-BFAB-038D96E72F0A);
    wp.className = "hidden";
}

function ShowWebpart(AFA8DE0A-E7B4-4580-BFAB-038D96E72F0A)
{
    var wp=document.getElementById(AFA8DE0A-E7B4-4580-BFAB-038D96E72F0A);
    wp.className = "";
}
</script>

最佳答案

好的,您可以为WebPart提供一个id =“ mywebpart”,然后只需使用JavaScript函数将其隐藏即可。

例:

<style type="text/css>
    .hidden { display:none; }
</style>
<script>
function HideWebpart(id_of_webpart)
{
    var wp=document.getElementById(id_of_webpart);
    wp.className = "hidden";
}

function ShowWebpart(id_of_webpart)
{
    var wp=document.getElementById(id_of_webpart);
    wp.className = "";
}
</script>
<WebPartPages:WebPartZone>
..The SVG WebPart... <--Add WebPart with id here
</WebPartPages:WebpartZone>

<button onclick="HideWebpart('PASS WEB PART ID IN HERE')"/>




我相信问题是,当getElementById仅查找“ id =”属性时,您想使用“ __WebPartId =”属性。因此,请通过自定义属性查找元素,您将需要使用以下内容而不是getElementById:

function getElementByAttribute(attr, value, root) {
    root = root || document.body;
    if(root.hasAttribute(attr) && root.getAttribute(attr) == value) {
        return root;
    }
    var children = root.children,
        element;
    for(var i = children.length; i--; ) {
        element = getElementByAttribute(attr, value, children[i]);
        if(element) {
            return element;
        }
    }


用法:

getElementByAttribute("__WebPartId",'PASS WEB PART ID IN HERE');


注意:与getElementById相比,它会慢很多,因为您无法使用任何索引

或者,如果您可以使用jQuery库,则可以只使用$('[__ WebPartId =“ PASS WEB PART ID IN HERE”]')

关于javascript - 在Java中嵌入Sharepoint Web部件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14744060/

10-09 21:05