You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASPX页面加载时服务端如何将指定div或ListItem对应标签设为选中状态

实现方案

完全可以实现,你可以根据实际需求选择前端JS实现或者后端服务器端实现两种方案:

方案1:前端JavaScript实现(无需修改后端代码)

你这个DOM结构是标签页组件的标准结构,对应实现代码如下:

// 原生JS实现
document.addEventListener('DOMContentLoaded', function() {
  // 先移除所有标签和内容面板的激活状态
  document.querySelectorAll('#ulMainTabs li').forEach(li => li.classList.remove('active'));
  document.querySelectorAll('#mainTabs > div').forEach(tabPanel => tabPanel.classList.remove('active'));
  // 给目标标签和对应内容面板加激活类
  document.getElementById('liReferralTab').classList.add('active');
  document.getElementById('divReferralTab').classList.add('active');
});

// 如果用jQuery UI Tabs这类标准标签页组件,一行代码即可实现
$(function() {
  $("#mainTabs").tabs({ active: 1 }); // 标签索引从0开始计数,序号1对应第二个Referral标签
});

方案2:后端服务器端实现(适合需要根据后端逻辑动态控制默认选中项的场景)

因为你的li标签都加了runat="server"属性,直接在后端Page_Load事件中修改样式/状态即可:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        // 移除其他标签的激活类
        liRDCTab.Attributes["class"] = liRDCTab.Attributes["class"]?.Replace("active", "") ?? "";
        liContactsTab.Attributes["class"] = liContactsTab.Attributes["class"]?.Replace("active", "") ?? "";
        // 给目标标签加激活类
        liReferralTab.Attributes["class"] += " active";
        
        // 同时控制内容面板的显示隐藏
        divRDCTab.Attributes["style"] = "display:none;";
        divReferralTab.Attributes["style"] = "display:block;";
        divContactsTab.Attributes["style"] = "display:none;";
    }
}

注意事项

  • 上述代码中的active是标签页常用的激活状态类名,你需要替换为自己项目中实际使用的激活类名
  • 如果使用的是其他第三方标签页组件,参考组件官方文档的「初始激活项」配置即可,通用逻辑都是指定目标标签的索引或者ID来设置默认选中

内容的提问来源于stack exchange,提问作者stonypaul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 09:36:03