2013-03-25 29 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