Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net Jquery回发,回发后维护相同的选项卡_.net_Asp.net_Javascript_Jquery_Jquery Ui - Fatal编程技术网

.net Jquery回发,回发后维护相同的选项卡

.net Jquery回发,回发后维护相同的选项卡,.net,asp.net,javascript,jquery,jquery-ui,.net,Asp.net,Javascript,Jquery,Jquery Ui,我正在使用jquery选项卡并遵循js方法,如何以及如何修改它以在回发之间维护选项卡的状态?(这将在页面加载后将选项卡重置为第一个选项卡) 您可以使用Javascript跟踪隐藏字段中的活动选项卡,然后在加载页面时检查隐藏字段。(也使用Javascript) 或者,您可以将UpdatePanels与ASP.NETAjax结合使用,以消除回发。(请注意,如果选项卡位于更新面板中,它们将无法正常工作)使用隐藏字段的替代方法是使用选项卡控件上的cookie属性 $(“#制表符”)。制表符({ 曲奇:{

我正在使用jquery选项卡并遵循js方法,如何以及如何修改它以在回发之间维护选项卡的状态?(这将在页面加载后将选项卡重置为第一个选项卡)


您可以使用Javascript跟踪隐藏字段中的活动选项卡,然后在加载页面时检查隐藏字段。(也使用Javascript)


或者,您可以将UpdatePanels与ASP.NETAjax结合使用,以消除回发。(请注意,如果选项卡位于更新面板中,它们将无法正常工作)

使用隐藏字段的替代方法是使用选项卡控件上的cookie属性

$(“#制表符”)。制表符({ 曲奇:{ 有效期:1 } });

您需要引用jquery.cookie.js文件才能工作

尝试以下操作:

<p class="hiddenData"><asp:HiddenField ID="hdnData" runat="server" /></p>

<script type="text/javascript">
    $(document).ready(function() {
        $('.tabs li a').click(function() { });
        $('.tabs li').hover(function() {
            var liData = $(this);
            $('.hiddenData input:hidden').val(liData.find('span').text());
        });
        if ($('.hiddenData input:hidden').val() != '') {
            var liList = $('.tabs li');
            var hiddenData = $('.hiddenData input:hidden').val();
            liList.each(function() {
                if ($(this).find('span').text() == hiddenData) {
                    $(this).find('a').click();
                }
            });
        }
    });
</script>

$(文档).ready(函数(){ $('.tabs li a')。单击(function(){}); $('.tabs li').hover(函数(){ var liData=$(本); $('.hiddenData输入:hidden').val(liData.find('span').text()); }); if($('.hiddenData输入:hidden').val()!=''){ var liList=$('.tabs li'); var hiddenData=$('.hiddenData输入:hidden').val(); liList.each(函数(){ if($(this).find('span').text()==hiddenData){ $(this.find('a')。单击(); } }); } });
你说的

 //When page loads...
 $(".tab_content").hide(); //Hide all content
我会用css加载这个,因为这样更快。hide可能正在进行显示:无

一种解决方案是从codebehind编写javascript
并以c为例#

或者,您可以使用C向#search标记添加一个属性,并使用js读取它

C#

JS

另一个解决方案是使用querystring
您可以从查询字符串中读取值。


我个人会选择第一个或第二个。

隐藏字段方法对我很有效。在.aspx包含

<asp:HiddenField runat="server" ID="hfLastTab" Value="0" />
$("#tabs").tabs({ active: <%= hfLastTab.Value %> });

我还使用了一个隐藏字段来跟踪所选选项卡。我用了更新面板。。但是当我在第二个标签上点击按钮时,回发导致第一个标签被显示。。。为什么?很好用。最简单、最优雅的解决方案。jQuery UI在1.10版本中消除了cookie业务
search.Attributes.Add("selectedtab", "1");
jQuery("#search").attr("selectedtab");
<asp:HiddenField runat="server" ID="hfLastTab" Value="0" />
$("#tabs").tabs({ active: <%= hfLastTab.Value %> });
        if (!Page.IsPostBack) {
            string pat = @"t=(\d)";
            Regex r = new Regex(pat, RegexOptions.IgnoreCase);
            Match m = r.Match(Request.Url.Query);
            if (m.Success) hfLastTab.Value = m.Groups[0].ToString();
        }