2011-10-10 40 views
0

我有一个aspx页面,它有三个选项卡。当我点击tab3中的一个按钮时,会发生一个回传,它会将我带回到tab1。我如何留在tab3中? 以下是我的aspx页面。另外我注意到我们有一个JavaScript来将活动标签设置为tab1。任何人都可以告诉我如何修改它,以便在回发期间将选定的选项卡设置为活动选项卡?如何在回发期间留在选定的选项卡中?

<script type="text/javascript"> 
    $(document).ready(function() { 

     //When page loads... 
     $(".tab_content").hide(); //Hide all content 
     $("ul.tabs li:first").addClass("active").show(); //Activate first tab 
     $(".tab_content:first").show(); //Show first tab content 

     //On Click Event 
     $("ul.tabs li").click(function() { 

      $("ul.tabs li").removeClass("active"); //Remove any "active" class 
      $(this).addClass("active"); //Add "active" class to selected tab 
      $(".tab_content").hide(); //Hide all tab content 

      var activeTab = $(this).find("a").attr("href"); //Find the href attribute value to identify the active tab + content 
      $(activeTab).fadeIn(); //Fade in the active ID content 
      return false; 
     }); 

    }); 

<div id="content">  
<ul class="tabs"> 
<li><a href="#tab1">Edit</a></li> 
<li><a href="#tab2">History</a></li> 
<li><a href="#attachmentcontent">Attachments</a></li> 
</ul> 


<div class="tab_container"> 

<div id="tab1" class="tab_content"> 

...

+0

我已通过使用隐藏字段解决了该问题。我无法在这里发布我的jQuery脚本。如果有人想要帮助,请给我发电子邮件。 – GLP

回答

0

你所指的是维护状态,常用的方法是在会话或视图状态中存储一个变量,指示什么是“选定”选项卡。然后在页面加载时将其读回并将其应用到适当位置的页面。

0

保持接头3的会话值和回传过程中只设置到会话值的标签位置。

基本上你需要将状态存储在某个地方,无论是某个cookie/session状态完全由你决定。然后,将该会话状态变量加载到控件的属性值中,以将其设置回您正在查看的位置。

阅读关于asp.net会话状态。

+0

我注意到我们有一个JavaScript来将活动标签设置为tab1。任何人都可以告诉我如何修改它,以便在回发期间将其设置为选定的选项卡? – GLP

+0

不会viewstate更好吗?我的意思是我不喜欢使用会话,如果我不需要。因为这个过程只在一个页面上进行,我们可以使用ViewState吗? – Bastardo

+0

ViewState不起作用。 – GLP

0

会话有一些缺点。 JavaScript只能读取会话的第一个值。例如,您在Page_Load中设置了Session["name"]="Gaolai Peng"。然后在一个按钮中点击回帖,如果你设置了Session["name"]="Rauf"。如果您使用JavaScript阅读会话,则会返回“Gaolai Peng”。所以请使用HiddenField而不是会话。

+0

我如何在jQuery中做到这一点? – GLP

+0

@Gaolai Peng你使用jQuery标签吗? – Rauf

相关问题