gpt4 book ai didi

c# - 从内容页设置母版页的属性并从 asp.net 中的另一个内容页获取该属性值

转载 作者:太空狗 更新时间:2023-10-29 23:08:46 28 4
gpt4 key购买 nike

我有一个包含一个属性名称事件类型的母版页。现在我想从内容页面设置此属性,然后该属性值应该可用于另一个内容页面。

这在 asp.net 中可行吗?如果是,请帮助我。

是的,我的内容页面已经继承了另一个非主页面。

最佳答案

如果此属性是您添加到母版页的自定义属性,则您必须将 MasterType 声明添加到包含它的页面。

<%@ MasterType 
virtualpath="~/Path/To/Your.master"
%>

这允许网站或应用程序在编译时知道母版页的特定类型,并允许您像访问控件中的任何其他属性一样访问它。

Page.Master.MyCustomerProperty = someValue;

编辑:作为旁注,在将此属性下放到您的下一个控件时,最好创建(并引发)一个自定义事件来指示该属性已更改。通过这种方式,许多控件可以订阅事件并“ self 更新”,而不必关心属性设置的时间。

示例:在您的母版页中,您可以将事件定义为“全局”变量。然后在你的属性(property)中你可以引发这个事件。

public event EventHandler myPropertyChanged;
public delegate void MyPropertyChanged(object sender, EventArgs e);

//...

public string MyProperty
{
get
{
return _myProperty;
}
set
{
_myProperty = value;
if (myPropertyChanged != null)
myPropertyChanged(this, new EventArgs());
}
}

然后在你的其他控件中,你可以订阅这个事件来知道它什么时候发生变化:

protected void Page_Load(object sender, EventArgs e) 
{
Page.Master.MyPropertyChanged += new EventHandler(MasterPropertyChanged);
}

protected void MasterPropertyChanged(object sender, EventArgs e)
//Rememeber you need the VirtualType in order for this event to be recognized
SomeLocalValue = Page.Master.MyProperty;
}

可以在 CodeProject 上找到有关此过程的详分割步教程。 .可以在 MSDN 上找到一个很好的 c# 自定义事件教程。 .

关于c# - 从内容页设置母版页的属性并从 asp.net 中的另一个内容页获取该属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15431733/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com