【发布时间】:2020-05-30 17:50:23
【问题描述】:
这是 c# 中的user control
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Message.ascx.cs" Inherits="Message" %>
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
public partial class Message : UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
MasterPage mstr = this.Parent.Page.Master as MasterPage;
Label1.Text = "User control >>> " + (mstr.FindControl("lblUserName") as Label).Text + "<br /><br /><br />";
}
}
user control 中标签Label1 的值使用来自master page 的标签lblUserName 值设置您的值
public partial class MasterPage : System.Web.UI.MasterPage
{
public string UserNamePropertyOnMasterPage
{
get
{
return lblUserName.Text;
}
set
{
lblUserName.Text = value;
}
}
}
<form id="form1" runat="server">
<div>
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
<span style="font-size: 25px; background-color: greenyellow">
<asp:Label ID="lblUserName" runat="server" Text="foo"></asp:Label>
</span>
</div>
</form>
现在我需要在 Default.aspx.cs
的 code behind 上从user control 获取标签 Label1 的值
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
using (Page page = new Page())
{
UserControl userControl = (UserControl)page.LoadControl("Message.ascx");
string sp = (userControl.FindControl("Label1") as Label).Text;
Response.Write("You are Welcome : " + sp.ToString() + "<br /><br /><br />");
}
}
}
<%@ Page Title="" Language="C#" MasterPageFile="MasterPage.master"
AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ MasterType VirtualPath="MasterPage.master" %>
<%@ Register Src="~/Message.ascx" TagPrefix="uc1" TagName="Message" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<asp:Label ID="lblCurrentUserName" runat="server" Text=""></asp:Label>
<uc1:Message ID="Message" runat="server"></uc1:Message>
</asp:Content>
没有错误,但 Default.aspx 上的返回为空
如何解决这个问题?
拜托,你能帮帮我吗?
【问题讨论】:
标签: c# user-controls master-pages