2010年10月25日 星期一

MapGuide_隱藏圖例(Legend)及屬性表(Property)

9月底的時候有某個機會去參加了一個我覺得很不錯的MapGuide代理商辦的教育訓練,途中講師有簡單的秀了一下"某個系統",看了以後讓我很想問兩個問題,一個是小問題,也就是這篇。

已經知道怎麼隱藏右邊的Task了,那怎麼隱藏圖例(Legend)及屬性表(Property)?

當下是有抄下一些關鍵字,想說回來測一下就OK了?結果沒想到問題很大XD,後來在網路上有找到一個看似很像可以達成目標的Code確一直有問題,最後才發現又是框架沒算好。

直接來看Code

if(ViewerFrame.mapFrame.document.getElementById("InfoBand").style.width =='0px')
{
ViewerFrame.mapFrame.minInfoWidth=20;
ViewerFrame.mapFrame.ResizeTo(200);
ViewerFrame.mapFrame.InitialMapView();
}
else
{
ViewerFrame.mapFrame.minInfoWidth=0;
ViewerFrame.mapFrame.ResizeTo(0);
ViewerFrame.mapFrame.document.getElementById("LayerCaption").style.width = 0;
ViewerFrame.mapFrame.document.getElementById("LegendCtrl").style.width = 0;
ViewerFrame.mapFrame.document.getElementById("PropertyCaption").style.width = 0;
ViewerFrame.mapFrame.document.getElementById("PropertyCtrl").style.width = 0;
ViewerFrame.mapFrame.InitialMapView();
}

好!如果你剛好要解決這個問題,或是你也想要把這個隱藏的功能加到你的MapGuide系統上,注意以下:
上面的Code應該很容易看懂,就不特別解說了,重點是誰是ViewerFrame?

現在,你可以先去看你導入MapGuide框架的那一頁名稱,或是你直接在這篇搜尋"ViewerFrame",所以上面的程式碼就要依照你放置功能的位置來改變框架的階層。

如果你跟我一樣是先放在ToolBar上面測試了話,ViewerFrame就是parent.frames[0]。
也就是

if(parent.frames[0].mapFrame.document.getElementById("InfoBand").style.width =='0px')
{
parent.frames[0].mapFrame.minInfoWidth=20;
parent.frames[0].mapFrame.ResizeTo(200);
parent.frames[0].mapFrame.InitialMapView();
}
else
{
parent.frames[0].mapFrame.minInfoWidth=0;
parent.frames[0].mapFrame.ResizeTo(0);
parent.frames[0].mapFrame.document.getElementById("LayerCaption").style.width = 0;
parent.frames[0].mapFrame.document.getElementById("LegendCtrl").style.width = 0;
parent.frames[0].mapFrame.document.getElementById("PropertyCaption").style.width = 0;
parent.frames[0].mapFrame.document.getElementById("PropertyCtrl").style.width = 0;
parent.frames[0].mapFrame.InitialMapView();
}

沒有留言:

張貼留言