【问题标题】:ASPX Bootstrap tab class accessing problemASPX Bootstrap 选项卡类访问问题
【发布时间】: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;
}
- 当我在选择 Tab1 时单击 button1 --> 我的结果显示在 Label1 上:
class of tab1: {nothing}
role: tab

从同一个标签 [li] 中,可以检索到属性 'role',但 'class' 为空。 我确实对此一无所知,因为当我检查元素时,那个 [li] 的类是“活动的” 我试着用谷歌搜索,但找不到类似的问题。 请帮我解决这个问题,谢谢!!!

【问题讨论】:

  • 据我所知,您不会在 C# 代码隐藏中获得通过 JavaScript/jQuery 设置的属性。如果要获取属性数据,则必须通过c#进行设置。
  • 尝试为您设置EnableViewState= "false" &lt;li&gt; 标签。
  • 您好@JamshaidKamran,感谢您的澄清。实际上我不确定您的上述假设,因为我也无法获取该
  • 标记的 ID,而我通过 C# 而不是 JS 设置的 ID
  • 我在那个
  • 中尝试了 EnableViewState="false" 但没有运气:P
  • 标签: javascript html asp.net attributes postback


    【解决方案1】:

    &lt;li runat="server" class="yourclass" id="yourid" &gt;

    将 runat="server" 属性添加到您的 li 元素,然后从您的代码中调用 li 的 id,例如 yourid.Attributes ,您可以为该元素添加或删除类

    【讨论】:

    • 问题是关于在回发后保留在 javascript 中所做的更改,而不是更改后面代码中的属性。
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签