如何在回发期间留在选定的标签中?

时间:2011-10-10 15:47:35

标签: asp.net tabs

我有一个包含三个标签的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">

...

4 个答案:

答案 0 :(得分:0)

保留选项卡3的会话值,并在回发期间将标签位置设置为该会话值。

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

阅读asp.net会话状态。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

会议有一些缺点。 JavaScript只能读取会话的第一个值。例如,您在Session["name"]="Gaolai Peng"中设置了Page_Load。然后在按钮中单击后面的帖子,如果设置Session["name"]="Rauf"。如果您使用JavaScript阅读会话,它将返回“Gaolai Peng”。因此,请使用HiddenField代替会话。

答案 3 :(得分:-1)

使用PostBackUrl属性并将其设置为/#<your tabID>

示例:

PostBackUrl = "/#tab1"