javascript實現table摺疊
function ShowTable(imgCtrl)
{
var ImgPlusScr ="../Images/icon_expandall.gif" ; // pic Plus +
var ImgMinusScr ="../Images/icon_collapseall.gif" ; // pic Minus -
var TableID = imgCtrl.id.replace("Img","Table");//將當前傳進來的圖片名稱替換成對應的table+圖片的編號
var className;
var objectFullName;
var tableCtrl;
objectFullName = <%=Table4.ClientID%>.id; //獲取服務器控件table的id
className = objectFullName.substring(0,objectFullName.indexOf("Table4")-1);//獲取除tablename以外的控件名稱
tableCtrl = document.all.item(className.substr(0,className.length)+"_"+TableID); //根據替換後的TableID來拼裝字符串,得到該table在頁面生成的控件名稱,然後通過documnet對象來獲取頁面對象
if(imgCtrl.src.indexOf("icon_expandall") != -1) //如果在獲取到的控件路徑裏找到了"icon_expandall"字符串,則將table的style屬性設爲“”,並將圖片替換成收起的標識
{
tableCtrl.style.display ="";
imgCtrl.src = ImgMinusScr ;
}
else //如果在獲取到的控件路徑裏找不到"icon_expandall"字符串,則將table的style屬性設爲none不顯示錶格的內容,並將圖片替換成展開的標識
{
tableCtrl.style.display ="none";
imgCtrl.src = ImgPlusScr ;
}
}
</script>
上面的註釋已經很清楚啦!
不過還是要整理,擴展一下.
ImgPlusScr ,ImgMinusScr :這兩個變量是用來存儲頁面圖片路徑的,爲後面的判斷提供條件.
TableID :用來獲取表的名稱.
className:獲取類名,在頁面生成的html文件中,aspx會將此類名加上"_tableID"顯示.
objectFullName:取一個Table的全名,這個表是頁面中的任意表,這裏主要是爲獲取calssname提供依據.
tableCtrl:獲取一個table控件
其實把這些個變量搞清楚了,要做什麼就不言而喻啦!
按照執行順利,我們一步一步分析.
1、給各變量賦值.
2、獲取對象全名.
3、獲取table對象的類名.
4、用剛獲取到的類名+tableID組成調用此方法的table控件名稱.再通過documnet對象獲取對應的table對象,當然這裏的tableID直接關係到頁面的表,在取此在tableID裏應找到對應的表。
5、對傳入的img對象圖片路徑進行判斷,用來確定是展開還是重疊。根據不同的結果做出 tableCtrl.style.display參數據的配置,爲“”是顯示對應表,爲“none”是隱藏對應表。這裏也會對相應的圖片進行切換。
以前爲常見的一種摺疊頁面內容的做法。
朋友們如果有更好的應用,希望多多指教。Thanks!