[英]Load Ajax tabs on demand
我有三個標簽。 我要加載,然后按需加載,但第一個選項卡除外。 如果我單擊第二個選項卡,它將加載第二個選項卡。 我的問題是,如果我加載第二個選項卡並轉到第三個選項卡,當我回到第二個選項卡時,它將再次加載。 那不應該發生。 一旦加載了標簽頁,就不會再次加載。 如何實現呢? 這是我的示例代碼。
<cc1:TabContainer ID="tabEditTskContainer" OnActiveTabChanged="tabEditTskContainer_TabChanged"
OnClientActiveTabChanged="tabChanged" AutoPostBack="true" runat="server" Height="300px"
Width="100%" ActiveTabIndex="0">
<cc1:TabPanel runat="server" ID="tabEditTskPnl" Enabled="true" HeaderText="Current Balance History"
Width="99%">
<HeaderTemplate>
Edit Task
</HeaderTemplate>
<ContentTemplate>
<br />
</ContentTemplate>
</cc1:TabPanel>
<cc1:TabPanel ID="tabAttach" runat="server" Height="100%" Enabled="true" Width="99%">
<HeaderTemplate>
Attachments
</HeaderTemplate>
<ContentTemplate>
</ContentTemplate>
</cc1:TabPanel>
<cc1:TabPanel ID="tabAddNotes" Height="100%" runat="server" Enabled="true" Width="99%">
<HeaderTemplate>
Notes
</HeaderTemplate>
<ContentTemplate>
</ContentTemplate>
</cc1:TabPanel>
<input type="hidden" runat="server" id="hdnTabAttach" />
<input type="hidden" runat="server" id="hdntabAddNotes" />
function tabChanged(sender, args) {
var tabIndex = sender.get_activeTabIndex();
if (tabIndex == "1") {
if (document.getElementById('hdnTabAttach').value == "0") {
return true;
}
else
return false;
}
}
protected void tabEditTskContainer_TabChanged(object sender, EventArgs e)
{
try
{
int intTabIndex = tabEditTskContainer.ActiveTabIndex;
if (intTabIndex == 1 && hdnTabAttach.Value != "1")
{
hdnTabAttach.Value = "1";
}
if (intTabIndex == 2)
{
DBLayer obj = new DBLayer();
SqlCommand cmd = new SqlCommand();
SqlParameter param = new SqlParameter("@fOrderID", SqlDbType.NVarChar, 255);
param.Value = Session["selorderID"].ToString();
param.Direction = ParameterDirection.Input;
cmd.Parameters.Add(param);
param = new SqlParameter("@fncatid", SqlDbType.NVarChar, 25);
param.Value = "1";
param.Direction = ParameterDirection.Input;
cmd.Parameters.Add(param);
DataSet dsGetNotes = obj.ExecuteDatasetSql("[usp_GetNotes]", cmd);
Session["GvNotes"] = dsGetNotes;
gvNotes.DataSource = dsGetNotes;
gvNotes.DataBind();
}
}
catch (Exception ex)
{
}
}
快速簡便-將隱藏的表單字段添加到aspx頁面,然后在選項卡名稱上附加其值。 然后,在實際加載選項卡之前,請確保該值未包含在隱藏的表單字段值中。
我相信這應該可以工作,但是問題是您正在使用.Net內置的ajax東西,我發現這很難解決。 通常,在客戶端,我將創建一個全局變量來告訴我已加載了哪些標簽,並且僅在之前未完成加載時才加載標簽,否則,我將僅顯示已加載的標簽。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.