【问题标题】:update asp.net label located on a control in master page from the content page从内容页面更新位于母版页中控件上的 asp.net 标签
【发布时间】:2014-04-22 21:38:12
【问题描述】:

我的 asp.net 应用程序中有一个母版页,其中有一个名为 menu 的用户控件,如下所示:

  <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; }
            }

在我的内容页面中,我想更新标签,所以我添加了这个:

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

并像这样使用它:

 int count = HREmployee.GetSavedCVsCount(EmployeeID);
            Master.SavedCVCount = count.ToString();

但它没有更新标签,也没有错误。我设置了断点,它们没有在母版页和控件的属性中命中。

请建议如何从内容页面更新母版页中控件上的标签?

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    将以下代码放入内容页面:

    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)
        {
        }
    }
    

    【讨论】:

      【解决方案2】:

      您可以将母版页作为当前页面上的属性访问。母版页控件受到保护,因此您可以使用 FindControl(string name) 访问它们。试试类似的东西

      // 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";
          }
      }
      

      你不得不面对这种情况..

      希望对你有帮助..

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-25
        • 1970-01-01
        相关资源
        最近更新 更多