0

vwaControl ハンドラー shapeselectionchanged のように JavaScript を使用して、SharePoint の Visio から onclick イベントを図形に追加する必要がありますが、クリックすると、それを行う方法はありますか?

私の英語が私の母国語ではないことを申し訳ありません。

あなたが私を理解できることを願っています。

4

1 に答える 1

1

私はちょうど似たようなことをしました。shapeSelectionChangedHandler を使用してクリックを処理できます。私が知る限り、onClick 機能はありませんが、shapeSelectionChangedHandler はうまく機能します。

参照: SharePoint で Visio を使用してプログラミングする、Javascript で新しい Outlook 会議を作成する

参照: 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;        
}
于 2013-03-26T10:39:16.400 に答える