ASP.NET,在C#中使用数据切换属性
本文关键字:数据 属性 NET ASP | 更新日期: 2023-09-27 17:59:08
我使用的是Bootstrap,它有一个选项卡菜单。它使用属性数据toggle="tab"来打开选项卡。现在,我在其中一个选项卡中有一个按钮,当我单击该按钮时,它会从代码隐藏文件中运行一些C#代码。它使用DataBind(),因此页面将重新加载。然而,当它重新加载时,它显然打开了默认的选项卡,但我希望它在重新加载时打开另一个选项卡。有没有一种方法可以在我的C#代码中运行数据切换?
HTML选项卡如下所示:
<ul class="nav nav-tabs">
<li runat="server" id="tabHome" class="active"><a href="#home" data-toggle="tab"><i class="fa fa-home"></i> Home</a></li>
<li runat="server" id="tabUsers"><a href="#profile" data-toggle="tab"><i class="fa fa-user"></i> Users</a></li>
<li runat="server" id="tabRoles"><a href="#messages" data-toggle="tab"><i class="fa fa-tags"></i> Roles</a></li>
<li runat="server" id="tabGames"><a href="#settings" data-toggle="tab"><i class="fa fa-trophy"></i> Games</a></li>
</ul>
在选项卡"tabRoles"中,我有一个执行某些代码的按钮:
if (!Roles.RoleExists(txtRolename.Text))
{
Roles.CreateRole(txtRolename.Text);
BindUsers();
BindRoles();
feedback.Visible = true;
lblFeedback.Text = "<strong>Success!</strong> The role "+txtRolename.Text+" was created.";
txtRolename.Text = "";
}
else
{
//Role already exists blabla
}
由于您通过id和runat属性将每个列表项标记为"服务器控件",因此您可以在服务器端代码中读取这些对象。尝试使用LI项目的"attributes"集合属性来获取每个选项卡的数据切换值、css类等。
从那里,您可以使用这些值与客户端代码绑定,并在页面加载时激活相应的选项卡。
您的List项上有runat=server,因此您可以在代码后面使用这些项。
类似这样的东西:
if (!Roles.RoleExists(txtRolename.Text))
{
//Roles stuff
//figure out which tab you want to return to
tabUsers.CssClass = "active";
tabHome.Attributes.Remove("class");
//do the same for other tabs
}
您还可以设置一些隐藏变量,并直接在html中添加逻辑以显示/隐藏选项卡。