遇到一個伺服器,居然不支援WebResource.axd,樹型控制項不能摺疊,而且左邊的+、-號全部是X號。
這個時候,如果沒有辦法讓管理員加上支援,只好採用比較特殊的方法來解決了。
首先,你會看到有樹型控制項的網頁裡面,引入了兩JS檔案,大概是
<script src='WebResource.axd?id=xxxxx' type='text/javascript' />
這樣的地址,這時候,先在本地(可以使用WebResource.axd),開啟這個頁面,然後在地址欄輸入這兩個JS的地址,另存新檔WebResource1.js和WebResource2.js。然後,在這個頁面裡面引用這兩個JS。
<script src='WebResource1.js' type=..... />
<script src='WebResource2.js' type=..... />
接著,右擊+號(加號)圖片,另存新檔2.gif,右擊-號(減號)圖片,另存新檔1.gif。放在網站目錄下,這裡假設是根目錄。
這樣就把樹型結構所有支援的東西都準備好了。
在頁面最後加上:<script type="text/javascript" defer>
<!--
try
{
tvClass_ImageArray = new Array('', '', '', '/1.gif', '/2.gif', '/1.gif');
WebForm_InitCallback();var tvClass_Data = new Object();
tvClass_Data.images = tvClass_ImageArray;
tvClass_Data.collapseToolTip = "摺疊 {0}";
tvClass_Data.expandToolTip = "展開 {0}";
tvClass_Data.expandState = theForm.elements['tvClass_ExpandState'];
tvClass_Data.selectedNodeID = theForm.elements['tvClass_SelectedNode'];
tvClass_Data.hoverClass = 'tvClass_8';
tvClass_Data.hoverHyperLinkClass = 'tvClass_7';
for (var i=0;i<6;i++) {
var preLoad = new Image();
if (tvClass_ImageArray[i].length > 0)
preLoad.src = tvClass_ImageArray[i];
}
tvClass_Data.lastIndex = 17;
tvClass_Data.populateLog = theForm.elements['tvClass_PopulateLog'];
tvClass_Data.treeViewID = 'tvClass';
tvClass_Data.name = 'tvClass_Data';
}
catch(ex)
{
}
// -->
</script><script language="javascript" type="text/javascript" defer>
for(var index = 0; index < document.images.length ; index ++)
{
var img = document.images[ index ];
if(img && img.src)
{
if(img.src.indexOf('WebResource.axd') > -1)
{
img.src = '/1.gif';
}
}
}
</script>
以上代碼是假設全展開的情況下。
這樣,樹型結構就可以正常使用了。