1

我有问题。我有 site.master,其中包括几个用户控件。现在我需要将实际页面代码中的值(字符串)传递给母版页面用户控件(属性)。

所以我的主人是这样的:

<%@ Master Language="VB" CodeFile="/scripts/pohjakoodit.master.vb" Inherits="pohjakoodit"  AutoEventWireup="false"  debug="false" %>

...在主人的最后有:

<ucSheriff:sheriffala ID="sheriffala" statvalue="atesti" runat="server" />

然后我有这样开始的实际页面:

<%@ Page Language="vb" MasterPageFile="site.master" AutoEventWireup="false" CodeFile="/scripts/alkuuutisetxw.aspx.vb" Inherits="uutiset_index" debug="true"  %>

sheriffala.ascx 拥有财产

dim Public staref As String = ""    

    Public Property statvalue() As String
        Get
            Return statvalue
        End Get
        Set(ByVal value As String)
            staref = value
        End Set
    End Property

现在我尝试从文件 alkuuutisetxw.aspx.vb 后面的代码中的用户控件 sheriffala 访问属性 statvalue。

我已经尝试了非常基本的 方法sheriffala.statvalue = "my srting"page.master.sheriffala.statvalue = "my srting" 尝试了一些绑定,但没有一个没有成功。

那么如何从文件后面的代码中将字符串传递给用户控件属性呢?

4

1 回答 1

0

您需要确保您的 UserControl 在 MasterPage 上是公开的。然后在 ContentPage 的 CodeBehind 中,您需要创建 MasterPage 的一个实例,您应该可以访问statvalue(),因为它已经是 Public。

或者,如果您不喜欢弄乱设计器文件,则可以创建公开 UserControls 和 MasterPage 的属性:

母版页:

Public ReadOnly Property UCSheriffala() As Sheriffala
    Get
        Return Me.Sheriffala
    End Get
End Property

内容页:

Public Shadows ReadOnly Property Master() As Pohjakoodit
    Get
        Return CType(MyBase.Master, Pohjakoodit)
    End Get
End Property

使用示例:

Response.Write(Master.UCSheriffala.statvalue)
于 2012-04-13T12:57:38.113 回答