我已经部署了一个共享点网页,并添加了一个自定义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/