gpt4 book ai didi

asp.net - 如何从 asp :content page using the master? 访问母版页上的用户控件

转载 作者:行者123 更新时间:2023-12-01 07:48:57 25 4
gpt4 key购买 nike

我不断收到这些关于“让我成为做 xyz 的工具”的请求,以获得 web app。我们正在安装。
所以在第三个之后,我意识到将它们放在一起并使用母版页会更容易。
我有一个名为 MessageCenter 的用户控件,用于显示错误、成功和信息性消息,因此我将其放在母版页上。

<%@ Master Language="VB" CodeFile="tfMasterPage.master.vb" Inherits="tfMasterPage" %>

<%@ Register Src="MessageCenter/msgCenter.ascx" TagName="msgCenter" TagPrefix="uc1" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>INSERT TITLE HERE</title>
<link href="Stylesheets/EogTool.css" rel="stylesheet" type="text/css" />
<link href="stylesheets/TF_Main_Styles.css" rel="stylesheet" type="text/css" />
<link href="stylesheets/TF_Print_Styles.css" rel="stylesheet" type="text/css" media="print" />
</head>
<body style="background-color: #eeeeee">
<form id="form1" runat="server">
<div class="page">
<div class="headerArea">
<div class="LogoImg">
<img alt="Transparency Florida" src="images/TF_Logo.jpg" /></div>
<div class="SealImg">
<img alt="Shining the Light on Florida's Budget" src="images/TF_Seal.jpg" /></div>
</div>
<div class="content">
<h1>
FIS - EOG Table Maintenance</h1>
</div>
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div class="content">
<div>
<uc1:msgCenter ID="MsgCenter1" runat="server" />
</div>
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
...
通常,当 msgcenter 在常规 aspx 页面上时,我会从代码隐藏中调用它的方法和内容,如下所示:
...
    rtn = dal.deleteRow(CInt(e.CommandArgument), currentTab())
If Not IsNumeric(rtn) Then
MsgCenter1.addMessage("An Error occured deletion" & rtn, , , , "E")
Else
MsgCenter1.addMessage("Delete Successful", , , , "S")
End If
bindGrid()
MsgCenter1.Visible = True
End Sub
但是当我尝试使用母版页从页面上的 asp:content 中执行此操作时,它告诉我没有声明 msgCenter1。这是某种范围问题。
我读过关于使用 findcontrol 的文章
ctype(master.findcontrol("tbWhatever"), textbox).text = "FOO"
但是当我尝试转换到我的用户控件时,它会提示,因为它再次没有被声明。
我觉得好像我只是错过了一 block 拼图,但它从昨天下午 4 点左右开始一直在逃避我。
任何建议、指针或链接将不胜感激。
谢谢。

最佳答案

首先将此指令添加到您要访问母版页的内容页中

<%@ MasterType VirtualPath="~/NameOfMasterPage.master"%>

其次,在母版页上设置一个公共(public)属性,返回您要访问的控件
public Label MasterLabel
{
get
{
return lblMaster;
}
private set
{
//do nothing
}
}

最后只需像这样访问内容页面中的控件
Master.MasterLabel.Text = "Hello from the content page!";

关于asp.net - 如何从 asp :content page using the master? 访问母版页上的用户控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1240564/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com