我得到了一些我需要更改的代码。它是由别人建立,并不是很整齐...Javascript选项卡:致电事件onclick
有一个javascript tabcontrol,包含4个选项卡,其中包含gridviews。 所有4个gridview都是在页面加载过程中生成的,但是我希望它们加载,当您激活选项卡时(因为可以看到一侧,而不需要特定的网格视图)
所以,我的问题是:如何从javascript选项卡调用事件(加载gridview)?
如何突片产生:(生成的代码,我知道,可怕的)
var obj = 0; var oid = 0; var otb = 0; var myTabs = new Array(); var myTabitems = new Array(); var myTabitem = new Array(); var myTabContent = new Array(); var myLists = new Array();function showTabContent(tab) { tb = tab.obj; id = tab.nr; if (myTabs[tb].oid != -1) { myTabs[tb].myTabContent[myTabs[tb].oid].style.display = 'none'; myTabs[tb].myTabitem[myTabs[tb].oid].className -= " active"; } myTabs[tb].myTabContent[id].style.display = 'block'; myTabs[tb].myTabitem[id].className += " active"; myTabs[tb].oid = id; }
function boTabs() { var myBlocks = new Array(); myBlocks = document.getElementsByTagName("div"); var stopit = myBlocks.length; for (var g = 0; g < stopit; g++) { if (myBlocks[g].className == "tabs") { myTabs.push(myBlocks[g]); } } var stopit2 = myTabs.length; for (var i = 0; i < stopit2; i++) { myTabs[i].myLists = myTabs[i].getElementsByTagName("ul"); if (myTabs[i].myLists[0].className == "tabs") { myTabs[i].myTabitems = myTabs[i].myLists[0].getElementsByTagName("li"); } var stopit3 = myTabs[i].myTabitems.length; myTabs[i].obj = i; myTabs[i].myTabitem = new Array(); myTabs[i].myTabContent = new Array(); for (var j = 0; j < stopit3; j++) { myTabs[i].myTabitem.push(myTabs[i].myTabitems[j]); myTabs[i].myTabitem[j].nr = j; myTabs[i].myTabitem[j].obj = i; myTabs[i].myTabitem[j].onclick = function() { showTabContent(this); }; } var myTabDivs = myTabs[i].getElementsByTagName("div"); for (var j = 0; j < myTabDivs.length; j++) { if (myTabDivs[j].className == "tabcontent") { myTabs[i].myTabContent.push(myTabDivs[j]);
} } myTabs[i].myTabitem[0].className += " active"; myTabs[i].myTabContent[0].style.display = 'block'; myTabs[i].oid = 0; myTabDivs = null; } myBlocks = null;
} 的onload = boTabs;
好吧,GridView控件在后面的代码(C#)的约束,因此它赢得了”用JS构建...我设法使用Jquery和CSS制作tabcontrol。我将在下面发布它作为答案... 此时,所有4个gridviews都绑定在Page_Load上,但是,因为花费时间在gridview后面运行te sproc,所以需要几秒钟的时间。因此我想在tabclick上加载它们... UpdatePanel似乎是最好的方法... – Joris 2010-04-26 21:29:59
是的,它非常方便;并且您可以在隐藏字段中存储选项卡的选定索引,以了解要加载哪个网格。 – 2010-04-26 22:46:11