2013-03-25 2 views
0

vwaControl 핸들러와 같은 셰이프에 onclick 이벤트를 SharePoint의 셰이프에 추가해야합니다. 셰이프 선택 변경과 같은 JavaScript가 있지만 클릭 할 때 어떤 방식 으로든 할 수 있습니까?클릭 셰이프상의 셰어 포인트 자바 스크립트

죄송하지만 제 영어는 제 모국어가 아닙니다.

나를 이해할 수 있기를 바랍니다.

+0

에서 당신이 원하는 것을 추가하고 그 할 수 있다면 그래서 이미지를 매핑 추측 많은 질문 중입니다. 하지만 그것이 유일한 방법이라면 누군가 나에게 힌트를 줄 수 있을까요? –

답변

1

나는 비슷한 것을했습니다. shapeSelectionChangedHandler를 사용하여 클릭 수를 처리 할 수 ​​있습니다. 내가 아는 한 onClick 기능은 없지만 shapeSelectionChangedHandler가 제대로 작동합니다.

참조 : Programming with Visio in SharePoint, create new Outlook meeting in ?Javascript?

참조 : 가이드 http://msdn.microsoft.com/en-us/library/gg243427.aspx 등등 컨텐츠는 WebPart과 함께 설정할 수 있습니다. 내가 사용하는

코드, 그냥 모양이 불규칙 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

고맙습니다 만, 목록을 업데이트해야하기 때문에 클릭 할 필요가 있습니다. 클릭 할 때마다 지금까지 두 번 클릭하면됩니다. document.onclick에 shapeClicked 함수가 추가되었습니다 (visio 웹에서만 가능). 액세스 페이지) 및 vwaShapes.getselectedShape를 가져 와서 선택한 모양이 목록에서 변경되어야하는지 확인합니다. 어쨌든, 당신은 자바 스크립트를 통해 셰이프에 새 목록을 연결하는 방법을 알고, 나는 검색 또는 업데이트를 만들 수 있지만 내가 어떻게 visio 웹 액세스와 연결할지 모르겠다 –