【发布时间】:2020-09-15 12:18:30
【问题描述】:
我正在使用bootstrap导航标签,我有一个问题:从代码后面,我无法在选择时获得[li]标记的属性'类'的值。它总是返回 null。 这是我的 aspx:
<!-- This is the js to prevent losing active tab after postback -->
<script type="text/javascript">
$(function () {
var tabName = $("[id*=TabName]").val() != "" ? $("[id*=TabName]").val() : "personal";
$('#Tabs a[href="#' + tabName + '"]').tab('show');
$("#Tabs a").click(function () {
$("[id*=TabName]").val($(this).attr("href").replace("#", ""));
});
});
</script>
<div id="Tabs" role="tabpanel">
<!-- Nav tabs -->
<ul class="nav nav-tabs" role="tablist">
<li runat="server" id="Tab1" role="tab">
<a href="#personal" aria-controls="personal" role="tab" data-toggle="tab">Personal</a>
</li>
<li runat="server" id="Tab2" role="tab">
<a href="#employment" aria-controls="employment" role="tab" data-toggle="tab">Employment</a>
</li>
</ul>
<!-- Tab panes -->
<div class="tab-content" style="padding-top: 20px">
<div role="tabpanel" class="tab-pane active" id="personal">
This is Personal Information Tab
</div>
<div role="tabpanel" class="tab-pane" id="employment">
This is Employment Information Tab
</div>
</div>
</div>
<asp:Button ID="Button1" Text="Submit" runat="server" CssClass="btn btn-primary" OnClick="Button1_Click" />
<asp:HiddenField ID="TabName" runat="server" />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
- 代码隐藏:
protected void Button1_Click(object sender, EventArgs e)
{
string cl1 = Tab1.Attributes["class"];
string ro1 = Tab1.Attributes["role"];
Label1.Text = "class of tab1: " + cl1 + "<br />role: " + ro1;
}
class of tab1: {nothing}
role: tab
从同一个标签 [li] 中,可以检索到属性 'role',但 'class' 为空。 我确实对此一无所知,因为当我检查元素时,那个 [li] 的类是“活动的” 我试着用谷歌搜索,但找不到类似的问题。 请帮我解决这个问题,谢谢!!!
【问题讨论】:
-
据我所知,您不会在 C# 代码隐藏中获得通过 JavaScript/jQuery 设置的属性。如果要获取属性数据,则必须通过c#进行设置。
-
尝试为您设置
EnableViewState= "false"<li>标签。 -
您好@JamshaidKamran,感谢您的澄清。实际上我不确定您的上述假设,因为我也无法获取该
- 标记的 ID,而我通过 C# 而不是 JS 设置的 ID
-
我在那个
- 中尝试了 EnableViewState="false" 但没有运气:P
标签: javascript html asp.net attributes postback