我使用jQuery选项卡和ASP.NET listview来显示和编辑一些信息。我的问题是,当用户在其中一个listview项中插入新记录时,我的jQuery选项卡会返回到第一个选项卡。有没有办法跟踪我在哪个标签上或者不让它在帖子后面休息?
答案 0 :(得分:31)
在ASP.NET中,您可以将其存储在隐藏字段中,而无需使用cookie(不需要jQuery cookie引用)。
使用此:
$(function () {
$("#tabs").tabs({
activate: function() {
var selectedTab = $('#tabs').tabs('option', 'active');
$("#<%= hdnSelectedTab.ClientID %>").val(selectedTab);
},
active: <%= hdnSelectedTab.Value %>
});
});
然后在正文中,声明隐藏的标签字段:
<asp:HiddenField ID="hdnSelectedTab" runat="server" Value="0" />
基本上,在选择选项卡时,您将选中的选项卡值存储在asp隐藏字段中。然后在节目中显示您正在检索值。
答案 1 :(得分:29)
使用较新版本的jQuery和jQuery UI,这将是:
$(function () {
$("#tabs").tabs({
activate: function() {
var selectedTab = $('#tabs').tabs('option', 'active');
$("#<%= hdnSelectedTab.ClientID %>").val(selectedTab);
},
active: document.getElementById('<%= hdnSelectedTab.ClientID %>').value
});
});
'selected'选项被'active'替换......当然你还需要添加隐藏字段:
<asp:HiddenField ID="hdnSelectedTab" runat="server" Value="0" />
答案 2 :(得分:4)
built-in support(jQuery cookie plugin)direct download。你这样使用它:
$("#tabs").tabs({
cookie: { expires: 7 } //1 week
});
这与保持跨回发不一样,但它通常会提供所需的效果。
答案 3 :(得分:2)
试试这个:
添加到页面:
<asp:HiddenField ID="hdnSelectedTab" runat="server" Value="0" />
添加到脚本:
$(function () {
var activeIndex = parseInt($get("hdnSelectedTab").value);
$("#tabs").tabs({
active: activeIndex,
activate: function (event, ui) {
$get("hdnSelectedTab").value = ui.newTab.index();
}
});
});
答案 4 :(得分:1)
此解决方案对我有用:来源http://saradesh.com/tajuddin/index.php/keep-the-selected-jquery-tab-active-on-partial-post-back-in-asp-net/
<script type="text/javascript">
var selTab;
$(function () {
var tabs = $("#tabs").tabs({
show: function () {
//get the selected tab index
selTab = $('#tabs').tabs('option', 'selected');
}
});
});
function pageLoad(sender, args) {
if (args.get_isPartialLoad()) {
$("#tabs").tabs({show: function () {
//get the selected tab index on partial postback
selTab = $('#tabs').tabs('option', 'selected');
}, selected: selTab });
}
};
</script>
答案 5 :(得分:0)
您可以通过以下方式获取当前标签:
var selected = $tabs.tabs('option', 'selected');
然后,您可以通过执行以下操作选择选项卡(完成POST后):
$tabs.tabs('select', selected);
请注意,选项卡选择是基于0的索引,因此选择2意味着选择第三个选项卡。
答案 6 :(得分:0)
我不是.NET的人,但您可以挂钩表单的submit()事件,并将当前活动的选项卡与表单数据一起发送到服务器。以这种方式,您可以在实际生成DOM和JS时在服务器端选择适当的选项卡。
像...一样的东西。
$("#the_form").submit(function(){
var $form = $(this);
selected_tab_idx = $("#the_tabs").tabs( "option", "selected" );
$('<input />', {type: hidden, name: 'tab_index', value: selected_tab_idx}).appendTo( $form );
return true;
});
答案 7 :(得分:0)
我正在使用cloudflare CDN中的jquery 3.5.0和jqueryui 1.12.1。
在.NET> = 3.5中,可以使用不带pip3 install -U pip
的ID。
所以在your.js中,以下内容对我有用:
def read_file_in_list (file_name):
list = []
with open (file_name,'r') as file:
for line in file:
lista.append ("\n")
for word in line.split():
list.append (" ")
list.append(word)
file.close()
return list
/// ********
这超出了OP。但是,我必须保持和标签:
<%= hdnSelectedTab.ClientID %>