我在母版页(sample.master)中有一个名为lblHeading的标签。
我想在加载内容页面时动态更改标签文本。
我需要这样做,因为我想将标题更改为有意义的内容,但只有在我知道页面内容之后才会这样做。
这可能吗?
答案 0 :(得分:13)
是的,你可以用这种非常简单的方式........
((Label)Master.FindControl("lblHeading")).Text = "your new text";
答案 1 :(得分:6)
是
您想创建一个strongly-type master page,然后您可以在Page_Load或其他任何地方从您的内容页面访问它的属性。
答案 2 :(得分:3)
是的,有可能。 MasterPage
的行为与您网页中的UserControl
相似。
实现此目的的可能步骤:
在MasterPage上创建一个属性或方法,使您可以对Label进行更改。 E.g:
public void ChangeLabel(string label) {
lblHeading.Text = label;
}
从Page
,使用MasterPage
属性获取对Page.Master
的引用。
MasterPage
内容。其他信息:您可能需要将Page.Master
投射到MasterPage
类型中,请尝试Coding the Wheel's link以获取有关如何执行此操作的说明。
答案 3 :(得分:3)
如上所述。然后,例如,从您的页面执行此操作(母版页具有ID =“Label_welcome”的标签):
private boolean checkData(List<MyObject> list,MyObject1 map){
if (list.size() == 0){
return true;
}
for (int i = 0 ; i < list.size(); i++){
MyObject temp = (MyObject)list.get(i);
if (temp.getAlt().compareTo(map.getType2().getAlt())== 0 && temp.getLat().compareTo(map.getType2().getLat()) == 0 && temp.getLongt().compareTo(map.getType2().getLongt()) == 0 && Integer.valueOf(temp.getPIndex()) == Integer.valueOf(map.getType2().getPIndex())&& Integer.valueOf(temp.getSIndex()) == Integer.valueOf(map.getType2().getSIndex()) && temp.getID().compareTo(map.getCommonTypeData().getID())== 0 && Integer.valueOf(temp.getFIndex()) == Integer.valueOf(map.getType2().getFIndex())){
return false;
}
}
return true;
}
答案 4 :(得分:2)
您可以在母版页中创建一个将更改标签的公共属性。
public string Heading
{
set
{
lblHeading.text = value;
}
}
答案 5 :(得分:0)
它还取决于Master页面内控件的深度。就我而言,我在ContentPlaceHolder控件中有一个Label控件......所以我不得不这样做......
Label myLBL = this.Master.FindControl("HeaderContent").FindControl("myLabel") as Label;