【问题标题】:Accessing Master Page Control From Button Click event of Content Page从内容页面的按钮单击事件访问母版页控件
【发布时间】:2016-03-14 10:06:26
【问题描述】:

我需要在内容页中的命令按钮 (btnLogin) 的单击事件中更改母版页中标签控件 (lblCustomerLogin) 的文本属性

我试过这个:

Public Property LoginCustomerName () as string
Get
return lblcustomerlogin.text
End Get
Set(ByVal value as string)
lblcustomerlogin.text=value
End set
End Property

然后我将其添加到内容页面:

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

并且在内容页面按钮点击事件代码后面,我已经这样做了:

 master.LoginCustomerName ="Test"

我也试过了:

dim LabelCustomerLogin as label=  Directcast(master.findcontrol("lblcustomerlogin",label)
LabelCustomerLogin.text ="Test" 

问题是母版页中的标签控件(lblCustomerLogin)在按钮单击时没有获取新的文本值。但是当我移动代码(master.logincustomername="test")加载内容页面的事件时,它可以工作。我如何让它在按钮点击事件中工作。

【问题讨论】:

    标签: asp.net vb.net


    【解决方案1】:

    需要@MasterType 指令,您添加得很好。下一步是将以下代码添加到母版页的代码后面:

    public String Customer_Name
    {
        get{}
        set
        {
            lblcustomerlogin.Text = value;   
        }
    }
    

    在您的内容页面中:

    this.Master.Customer_Name = "myNewValue";
    

    附:对不起,例如在 C# 上。希望你能把它转换成vb.net。

    希望对你有帮助。

    【讨论】:

    • 这和我已经做过的一样,我不知道为什么它不起作用。我的网站还是启用了 Ajax,我不知道是不是这个原因
    • 在调试时我发现 lblcustomerlogin 文本属性实际上正在更改为新值;但由于重定向到另一个页面(也使用相同的母版页)而丢失了它。现在的任务是如何让 lblcustomerlogin 保持新值,无论我导航到哪个内容页面。
    • 将此值保存到会话中。在另一个页面中,如果 Session 的值不为 null 或为空,则从该 Session 中设置 MasterPage 的标签值
    猜你喜欢
    • 1970-01-01
    • 2020-01-14
    • 2014-09-20
    • 1970-01-01
    • 2010-09-27
    • 1970-01-01
    • 2011-08-06
    相关资源
    最近更新 更多