从 Site.Master 访问 ASP.NET C# Web 表单中的 html 元素

问题描述 投票:0回答:1

我有 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。

c# asp.net webforms
1个回答
1
投票

您必须使用 Master 中的

FindControl
来定位控件。

var button = Master.FindControl("logoutButton") as HtmlControl;
button.Style["background-color"] = "red";

或者作为一句台词

((HtmlControl)Master.FindControl("logoutButton")).Style["background-color"] = "red";
© www.soinside.com 2019 - 2024. All rights reserved.