首页 >> 编程知识

ASP.NET 学习笔记之PlaceHolder控件、怎么使用到母版页中用户控件上的控件值?

ASP.NET 学习笔记之PlaceHolder控件



在从一个Web页面转换到另一个Web页面时,你的ASP.NET应用程序的用户界面的某些部分常常是保持不变的——如某些“装饰”的部分:页眉处的GIF图片、水平工具条或导航条、左侧的链接、等等。你可以继续用它们,而不必为每个页面重建。 

在过去,一个流行的ASP技术就是为一个页面的每个主要部分创建一个include文件,然后建一个整体的HTML表,表的单元包含每个include文件。这种方法是可行的,但是不美观,还容易出错。幸运的是,ASP.NET可以让你用一种更好的方法来解决这个问题,运用一个Visual Studio .NET PlaceHolder Web控件。该控件将其它控件作为一个集合(collection)包含起来。你可以在运行时清除那个collection或添加它;例如,你可以在运行时添加一个Web用户控件(一个模块式的Web页面)。我将讲述如何将PlaceHolder Web控件同Web用户控件结合起来运用,为构建ASP.NET应用程序提供一个方法。 

首先在VS.NET中创建一个新的ASP.NET Web应用程序。我在样例代码中用的是C#。创建一个Web窗体,保存的文件带有ASPX扩展名。我称其为我的main.aspx。该页面是你的应用程序中唯一的Web页面,因为你用Web用户控件(ASCX文件)来开发所有的页面“内容”。 

在main.aspx页面中创建你选择的站点装饰内容。在你想放置站点丰富内容地方添加一个PlaceHolder控件。然后,将下面的代码添加到你的页面的Page Load事件中:private void Page_Load(object sender, 
   System.EventArgs e) 

string p = Request.QueryString.Get("p"); 
PlaceHolder1.Controls.Clear(); 
if (p == null) 
PlaceHolder1.Controls.Add(LoadControl 
   ("modules/" + "Default" + ".ascx")); 
else 

PlaceHolder1.Controls.Add(LoadControl 
   ("modules/" + p + ".ascx")); 
   } 



怎么使用到母版页中用户控件上的控件值?



母版页A上有用户控件B 我要使用B上的一个 LABLE
网友回复:用户控件里面还包含LABLE???? 
到底什么意思 !!! 
用户控件B 是什么控件?
网友回复:给你简单分析一下: 

在页面中写代码:你可以在页面中直接 用户控件ID.FindControl('id')方法 

假如是在用户控件中寻另一个用户控件的值:这个只能用页面传参,或看控件加载顺序来用ViewState之类的传了
网友回复:
Label test = (Label)Master.FindControl("B").FindControl("LABLEID"); 

TextBox1.Text = test.Text; 
这只是单纯的将lable上的text显示在一个TextBox里;

尽量保持独立性.
ASP.NET 学习笔记之PlaceHolder控件、怎么使用到母版页中用户控件上的控件值?(本文完毕)
下一篇:ASP.Net2.0的集合操作 --- List?
上一篇:母版页与用户控件效率比较