我已经部署了一个sharepoint网页,并添加了一个自定义webpart,可以按照客户想要的方式显示数据。 webpart的问题在于,当用户想要时,我们无法扩展,修改或隐藏它。我们考虑将Sharepoint webpart嵌入Java包装器中。通常,这在标准HTML页面上很容易。问题是如何在Sharepoint中的java包装器中嵌入webpart?
我想添加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>
答案 0 :(得分:0)
好的,你可以给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 =“在这里使用通行证件ID']')