我有 Site.master,其中有网站的所有布局。
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="Site.master.cs" Inherits="SiteMaster" %>
除其他内容外,它还包括一些简单的按钮或其他元素,例如:
<button runat="server" id="logoutButton" onserverclick="logout" class="dropdown-item" style="cursor: pointer;"><i class="ft-power"></i>Logout</button>
现在我在名为 Reports 的文件夹中有另一个 WebForm
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="CompanyReports.aspx.cs" Inherits="Reports_CompanyReports" %>
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" Runat="Server">
</asp:Content>
我想从后面的代码更改 WebForm CompanyReports.aspx 的按钮背景(位于母版页中) 我无法通过以下方式执行此操作:
logoutButton.Style["background-color"] = "red";
它给我错误,当前上下文中不存在 logoutButton。
您必须使用 Master 中的
FindControl
来定位控件。
var button = Master.FindControl("logoutButton") as HtmlControl;
button.Style["background-color"] = "red";
或者作为一句台词
((HtmlControl)Master.FindControl("logoutButton")).Style["background-color"] = "red";