C# 如何从ASP中的代码隐藏访问站点母版页控件?
我在我的站点母版页中设置了导航栏,我试图从引用它的每个页面后面的代码中访问它,以便更改pageload事件中的“活动”选定项。我已将每个li标记设置为唯一id和runat=“server”,但仍然无法引用它。这是我到目前为止在母版页上看到的内容C# 如何从ASP中的代码隐藏访问站点母版页控件?,c#,asp.net,C#,Asp.net,我在我的站点母版页中设置了导航栏,我试图从引用它的每个页面后面的代码中访问它,以便更改pageload事件中的“活动”选定项。我已将每个li标记设置为唯一id和runat=“server”,但仍然无法引用它。这是我到目前为止在母版页上看到的内容 <nav class="navbar navbar-inverse"> <div class="container-fluid"> <div class="navbar-header">
<nav class="navbar navbar-inverse">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<div class="collapse navbar-collapse" id="myNavbar2" >
<ul class="nav navbar-nav">
<li class="active" id="nbHome" runat="server"><a href="HomePage.aspx">Home</a></li>
<li><a href="Gallery.aspx" id="nbGallery" runat="server">Gallery</a></li>
<li><a href="Services.aspx" id="nbServices" runat="server">Services</a></li>
<li><a href="Tutorials.aspx" id="nbTutorials" runat="server">Tutorials</a></li>
<li><a href="FAQ.aspx" id="nbFAQ" runat="server">F.A.Q.</a></li>
<li><a href="Contact.aspx" id="nbContact" runat="server">Contact</a></li>
</ul>
</div>
</div>
</nav>
您可以使用FindControl
在主控中查找HtmlControl
HtmlControl control = Master.FindControl("nbGallery") as HtmlControl;
control.Attributes.Add("class", "active");
这需要
使用System.Web.UI.HtmlControls
位于.cs文件顶部。可能重复的不同之处在于,我没有为其设置专门的CSS类,并且我没有收到任何异常-我只是无法确定如何从PageLoad事件引用控件。遗憾的是,没有更改-所选项保持不活动状态。不过我还是要把它摆弄一下。对旧的选定项使用类似的代码来执行control.Attributes.Remove(“类”);如果在页面中使用此代码段来搜索主控中的控件,那么它在我的测试环境中也可以正常工作。如果在主控程序的代码隐藏中使用它,则需要删除主控程序。
它成功找到它,并可以从预选的类中删除该类。我试图从引用母版页的一个aspx页面的页面加载中引用它(成功),它只是不改变类本身。你所说的“改变类”是什么意思,你检查过html吗