如何将值传递给母版页用户控件

时间:2012-04-13 12:52:10

标签: vb.net controls master

我有问题。我有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" 并尝试了几个绑定,其中没有一个没有成功。

那么如何从代码隐藏文件传递字符串到用户控件属性?

1 个答案:

答案 0 :(得分:0)

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

或者,如果您不喜欢弄乱设计器文件,可以创建公开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)