C# 从内容页更新位于母版页控件上的asp.net标签
我的asp.net应用程序中有一个母版页,其中有一个名为“菜单”的用户控件,如下所示:C# 从内容页更新位于母版页控件上的asp.net标签,c#,asp.net,C#,Asp.net,我的asp.net应用程序中有一个母版页,其中有一个名为“菜单”的用户控件,如下所示: <asp:Literal ID="SavedCVLiteral" runat="server" Text="1" / public string lbl_Text { get { return SavedCVLiteral.Text; } set { SavedCVLiteral.Text = value; } }
<asp:Literal ID="SavedCVLiteral" runat="server" Text="1" /
public string lbl_Text
{
get { return SavedCVLiteral.Text; }
set { SavedCVLiteral.Text = value; }
}
<%@ Register Src="Controls/CompanyLhsMenu.ascx" TagName="CompanyLhsMenu" TagPrefix="uc" %>
<uc:CompanyLhsMenu ID="menu" runat="server" />
public string SavedCVCount
{
get { return menu.lbl_Text; }
set { menu.lbl_Text = value; }
}
int count = HREmployee.GetSavedCVsCount(EmployeeID);
Master.SavedCVCount = count.ToString();
在我的母版页中,我创建了如下属性:
<asp:Literal ID="SavedCVLiteral" runat="server" Text="1" /
public string lbl_Text
{
get { return SavedCVLiteral.Text; }
set { SavedCVLiteral.Text = value; }
}
<%@ Register Src="Controls/CompanyLhsMenu.ascx" TagName="CompanyLhsMenu" TagPrefix="uc" %>
<uc:CompanyLhsMenu ID="menu" runat="server" />
public string SavedCVCount
{
get { return menu.lbl_Text; }
set { menu.lbl_Text = value; }
}
int count = HREmployee.GetSavedCVsCount(EmployeeID);
Master.SavedCVCount = count.ToString();
但它没有更新标签,也没有错误。我设置了断点,它们不会在母版页和控件的属性中命中
请建议如何从内容页更新母版页控件上的标签?您可以作为当前页的属性访问母版页。母版页控件受保护,因此您可以使用FindControl(字符串名称)访问它们。试试那样的
// Gets a reference to a Literal control inside a ContentPlaceHolder
ContentPlaceHolder mpContentPlaceHolder;
Literal ltrel;
mpContentPlaceHolder =
(ContentPlaceHolder)Master.FindControl("ContentPlaceHolder1");
if(mpContentPlaceHolder != null)
{
ltrel = (Literal) mpContentPlaceHolder.FindControl("SavedCVLiteral");
if(ltrel != null)
{
ltrel .Text = "update it";
}
}
你必须面对这种情况
希望对您有所帮助。您可以将母版页作为当前页面上的属性访问。母版页控件受保护,因此您可以使用FindControl(字符串名称)访问它们。试试那样的
// Gets a reference to a Literal control inside a ContentPlaceHolder
ContentPlaceHolder mpContentPlaceHolder;
Literal ltrel;
mpContentPlaceHolder =
(ContentPlaceHolder)Master.FindControl("ContentPlaceHolder1");
if(mpContentPlaceHolder != null)
{
ltrel = (Literal) mpContentPlaceHolder.FindControl("SavedCVLiteral");
if(ltrel != null)
{
ltrel .Text = "update it";
}
}
你必须面对这种情况
希望对您有所帮助。将以下代码放入内容页:
protected void Page_Load(object sender, EventArgs e)
{
UserControl US = FindControl("CompanyLhsMenu") as UserControl;
Literal ltrel;
try
{
US = (UserControl)Master.FindControl("menu");
ltrel = (Literal)US.FindControl("SavedCVLiteral");
if (ltrel != null)
{
ltrel.Text = "update it";
}
}
catch (Exception ex)
{
}
}
将以下代码放入内容页:
protected void Page_Load(object sender, EventArgs e)
{
UserControl US = FindControl("CompanyLhsMenu") as UserControl;
Literal ltrel;
try
{
US = (UserControl)Master.FindControl("menu");
ltrel = (Literal)US.FindControl("SavedCVLiteral");
if (ltrel != null)
{
ltrel.Text = "update it";
}
}
catch (Exception ex)
{
}
}