【问题标题】:How to pass value to master pages user control如何将值传递给母版页用户控件
【发布时间】:2012-04-13 12:52:10
【问题描述】:

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

所以我的主人是这样的:

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

...在master的末尾有:

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

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

【问题讨论】:

    标签: vb.net controls master


    【解决方案1】:

    您需要确保您的 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)
    

    【讨论】:

    • 我试过了,并在您的主代码上停止了错误 BC30002:未定义类型“Sherrifala”。
    • @Timo77 - 这可能是因为它需要 Sheriffala 才能匹配您的 UserControl 的 ID。我只是打错了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-22
    相关资源
    最近更新 更多