我有一個系統管理員選項卡,點擊時會產生大量的AJAX一個tabpanel這是動態的數據庫驅動...如何在我的情況下實現惰性加載?
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<br />
<ajaxToolkit:TabContainer ID="TabContainer1" runat="server" Width="100%" ActiveTabIndex="0"
CssClass="ajax__tab_header">
<ajaxToolkit:TabPanel ID="TPAdjCal" Width="100%" runat="server">
<HeaderTemplate>
<img runat="server" id="imgAdjCalendarleft" visible="false" alt="" src="../images/Tabs/GreenLeftBottom.gif" /><asp:Button
ID="imgAdjCalendar" BorderStyle="none" Text="" CssClass="MainTabs"
runat="server"></asp:Button><img alt="" src="../images/Tabs/GreenRightBottom.gif"
runat="server" id="imgAdjCalendarright" visible="false" />
</HeaderTemplate>
<ContentTemplate>
<table class="HeaderCaption" id="Table1" cellspacing="0" cellpadding="3" width="100%"
border="0" runat="server">
<tr class="PagerRow">
<td>
<asp:Label ID="HeaderLabel1" runat="server" Text="Label"></asp:Label>
<asp:Label ID="FunctionCode1" runat="server" Text="" Visible="false"></asp:Label>
</td>
<td>
</td>
<td>
</td>
</tr>
</table>
</ContentTemplate>
</ajaxToolkit:TabPanel>
<ajaxToolkit:TabPanel ID="TabContainer2" Width="100%" runat="server">
<HeaderTemplate>
<img runat="server" id="imgPoliceReportsleft" visible="false" alt="" src="../images/Tabs/GreenLeftBottom.gif" /><asp:Button
ID="imgPoliceReports" BorderStyle="none" Text="" CssClass="MainTabs"
runat="server"></asp:Button><img alt="" src="../images/Tabs/GreenRightBottom.gif"
runat="server" id="imgPoliceReportsright" visible="false" />
</HeaderTemplate>
<ContentTemplate>
<table class="HeaderCaption" id="Table2" cellspacing="0" cellpadding="3" width="100%"
border="0" runat="server">
<tr class="PagerRow">
<td>
<asp:Label ID="HeaderLabel2" runat="server" Text="Label"></asp:Label>
<asp:Label ID="FunctionCode2" runat="server" Text="" Visible="false"></asp:Label>
</td>
<td>
</td>
<td>
</td>
</tr>
</table>
</ContentTemplate>
</ajaxToolkit:TabPanel>
</ajaxToolkit:TabContainer>
後面的代碼:當系統管理員選項卡點擊我調用的加載選項卡的loadmanager方法。 。下面
protected void LoadManagerTabs(bool runFirstLoad)
{
if (Session["UserSystemTabs"] == null)
{
postMessage("You do not have access to any system functions", Constants.ERROR_MSG,false);
return;
}
string[,] functions = Session["UserSystemTabs"] as string[,];
functions.GetLength(0);
if (functions.GetLength(0) > 0)
{
string funccode = functions[0, 0];
if (funccode.Length > 0)
{
if (isHaveAccess(funccode))
{
string pagename = DBUtils.getFuncUrlByCode(funccode);
try
{
eClaim.Controls.Tables.DataTables contr = null;
contr = (eClaim.Controls.Tables.DataTables)LoadControl("~/" + pagename + ".ascx");
contr.Key = "";
contr.runPageLoad = runFirstLoad;
contr.FuncCode = funccode;
TPAdjCal.Controls.Add(contr);
TPAdjCal.Visible = true;
imgAdjCalendar.Text = functions[0, 1];
HeaderLabel1.Text = functions[0, 1];
FunctionCode1.Text = functions[0, 0];
//imgAdjCalendar.Visible = true;
}
catch
{
DataTablesV2 contr = null;
contr = (DataTablesV2)LoadControl("~/" + pagename + ".ascx");
contr.Key = "";
//contr.runPageLoad = runFirstLoad;
if (ShouldRunPageLoad(funccode) && TabContainer1.ActiveTabIndex.Equals(0))
{
contr.runPageLoad = true;
}
else
{
contr.runPageLoad = false;
}
contr.FuncCode = funccode;
TPAdjCal.Controls.Add(contr);
TPAdjCal.Visible = true;
imgAdjCalendar.Text = functions[0, 1];
HeaderLabel1.Text = functions[0, 1];
FunctionCode1.Text = functions[0, 0];
//imgAdjCalendar.Visible = true;
}
if (TabContainer1.ActiveTabIndex.Equals(0))
{
imgAdjCalendar.CssClass = "MainTabsSelected";
imgAdjCalendarleft.Src = "../images/Tabs/LightGreenLeftBottom.gif";
imgAdjCalendarright.Src = "../images/Tabs/LightGreenRightBottom.gif";
}
else
{
imgAdjCalendar.CssClass = "MainTabs";
imgAdjCalendarleft.Src = "../images/Tabs/GreenLeftBottom.gif";
imgAdjCalendarright.Src = "../images/Tabs/GreenRightBottom.gif";
}
}
else
{
TPAdjCal.Visible = true;
imgAdjCalendar.Visible = false;
imgAdjCalendarleft.Visible = false;
imgAdjCalendarright.Visible = false;
}
}
}
else
{
TPAdjCal.Visible = true;
imgAdjCalendar.Visible = false;
imgAdjCalendarleft.Visible = false;
imgAdjCalendarright.Visible = false;
imgTabScrollright.Visible = false;
btnTabScroll.Visible = false;
imgTabScrollleft.Visible = false;
}
if (functions.GetLength(0) > 1)
{
string funccode = functions[1, 0];
if (funccode.Length > 0)
{
if (isHaveAccess(funccode))
{
string pagename = DBUtils.getFuncUrlByCode(funccode);
try
{
eClaim.Controls.Tables.DataTables contr = null;
contr = (eClaim.Controls.Tables.DataTables)LoadControl("~/" + pagename + ".ascx");
contr.Key = "";
contr.runPageLoad = runFirstLoad;
contr.FuncCode = funccode;
TabContainer2.Controls.Add(contr);
TabContainer2.Visible = true;
imgPoliceReports.Text = functions[1, 1];
HeaderLabel2.Text = functions[1, 1];
FunctionCode2.Text = functions[1, 0];
//imgPoliceReports.Visible = true;
}
catch
{
DataTablesV2 contr = null;
contr = (DataTablesV2)LoadControl("~/" + pagename + ".ascx");
contr.Key = "";
contr.runPageLoad = runFirstLoad;
contr.FuncCode = funccode;
TabContainer2.Controls.Add(contr);
TabContainer2.Visible = true;
imgPoliceReports.Text = functions[1, 1];
HeaderLabel2.Text = functions[1, 1];
FunctionCode2.Text = functions[1, 0];
//imgPoliceReports.Visible = true;
}
if (TabContainer1.ActiveTabIndex.Equals(1))
{
imgPoliceReports.CssClass = "MainTabsSelected";
imgPoliceReportsleft.Src = "../images/Tabs/LightGreenLeftBottom.gif";
imgPoliceReportsright.Src = "../images/Tabs/LightGreenRightBottom.gif";
}
else
{
imgPoliceReports.CssClass = "MainTabs";
imgPoliceReportsleft.Src = "../images/Tabs/GreenLeftBottom.gif";
imgPoliceReportsright.Src = "../images/Tabs/GreenRightBottom.gif";
}
}
else
{
TabContainer2.Visible = true;
imgPoliceReports.Visible = false;
imgPoliceReportsleft.Visible = false;
imgPoliceReportsright.Visible = false;
}
}
}
else
{
TabContainer2.Visible = true;
imgPoliceReports.Visible = false;
imgPoliceReportsleft.Visible = false;
imgPoliceReportsright.Visible = false;
imgTabScrollright.Visible = false;
btnTabScroll.Visible = false;
imgTabScrollleft.Visible = false;
}
我想實現延遲加載,所以當系統管理員選項卡單擊只有第一個選項卡數據將加載和不是所有的標籤樣本。我一直在尋找,但我沒有找到任何東西來幫助我與我的情況...任何幫助將不勝感激
我想有人需要提取幾種方法... – ChaosPandion 2012-07-12 13:43:04
可能有用的:http://stackoverflow.com/q/10931064/284240 – 2012-07-12 13:59:31