2013-03-25 30 views
0

我需要添加一个onclick事件到Visio在SharePoint中的形状,使用JavaScript,就像vwaControl处理程序shapeselectionchanged,但点击后,有没有什么办法可以做到这一点?点击形状上的Sharepoint javascript

对不起,我的英语不是我的母语。

我希望你能理解我。

+0

的形状是不规则的,很多,所以我想映射图像是出了问题,如果可以做。但如果这是唯一的方式可以有人给我一个提示? – 2013-03-25 17:20:49

回答

1

我只是做了类似的事情。 您可以使用shapeSelectionChangedHandler来处理点击。据我所知没有onClick功能,但shapeSelectionChangedHandler适合我。

参见: Programming with Visio in SharePoint, create new Outlook meeting in ?Javascript?

参见:http://msdn.microsoft.com/en-us/library/gg243427.aspx为指导,与内容Web部件等设置。

代码我使用,只需添加你想要什么shapeSelectionChangedHandler = function(source, args) {}

<script language="javascript"> 
var app = Sys.Application; 

app.add_load(onApplicationLoad); 

// hold an instance of the Visio VWA control 
var vwaControl; 

var shapeSelectionChangedHandler = null; 


function onApplicationLoad() 
{ 
    vwaControl= new Vwa.VwaControl("WebPartWPQ4"); 
    vwaControl.addHandler("diagramcomplete", onDiagramComplete); 
    vwaControl.addHandler("shapeselectionchanged", shapeSelectionChangedHandler); 
} 

function onDiagramComplete() 
{ 
    var vwaPage = vwaControl.getActivePage(); 
    vwaPage.setZoom(35); // force the initial zoom level 
} 


shapeSelectionChangedHandler = function(source, args) 
{ 
    // get the selected shape from the shapes on the page 
    var vwaPage = vwaControl.getActivePage(); 
    var vwaShapes = vwaPage.getShapes(); 
    var shape = vwaShapes.getItemById(args); 

    // get the data to display for the selected shape 
    var data = shape.getShapeData(); 

    var strRoomName = ""; 
    var strFloorNumber = ""; 
    var strCapacity = ""; 
    var strStatus = ""; 

    for (var j = 0; j < data.length; j++) 
    { 
     if (data[j].label == "RoomName") 
     { 
      strRoomName = data[j].value; 
      continue; 
     } 

     if (data[j].label == "FloorNumber") 
     { 
      strFloorNumber = data[j].value; 
      continue; 
     } 

     if (data[j].label == "Capacity") 
     { 
      strCapacity = data[j].value; 
      continue; 
     }   

     if (data[j].label == "RoomStatus") 
     { 
      strStatus = data[j].value; 
      continue; 
     }     
    } 

    // get the selected state input and set its value 
    var inputRoomName = document.getElementById('strRoomName'); 
    inputRoomName.value = strRoomName; 

    var inputFloorNumber = document.getElementById('strFloorNumber'); 
    inputFloorNumber.value = strFloorNumber; 

    var inputCapacity = document.getElementById('strCapacity'); 
    inputCapacity.value = strCapacity;  

    var inputStatus = document.getElementById('strStatus'); 
    inputStatus.value = strStatus;   
} 
+0

谢谢,但我需要点击,因为我需要更新一个列表,每次点击时,到目前为止,我可以通过双击完成,将shapeClicked函数添加到document.onclick(仅在visio网站中访问页面),获取vwaShapes.getselectedShape,知道选择了哪个形状,并且需要在列表中进行更改。无论如何,你知道如何通过JavaScript链接一个新的列表形状,我可以创建检索或更新,但我不知道如何将它与Visio网络访问连接 – 2013-03-26 19:00:21