在ASP.NET中动态加载内容(用户控件和模板)

在ASP.NET中动态加载内容(用户控件和模板) 
要点: 
1. 使用Page.ParseControl 
2. 使用base.LoadControl 
第一部分:加载模板 

面是一个模板“<table width=100%><tr><td width=100% colspan=2
runat=server id=ContainerTop></td></tr><tr><td
width=30% runat=server id=ContainerLeft></td><td width=70%
runat=server
id=ContainerRight></td></tr></table>”如何把它添加到页面中那。 
首先,你要有一个页面(.aspx),在页面中有一个一行一列的表格,并且是服务器端的TD我们就把它命名为TemplateContainer。好了现在到代码编辑窗口,在page_load中加载模板。 
第二步,使用Page.ParseControl将上边的HTML代码分析为web窗体页或用户控件的System.web.ui.control如下代码: 
protected System.Web.UI.HtmlControls.HtmlTableCell TemplateContainer; 
System.Web.UI.Control objContainer; 
private void Page_Load(object sender, System.EventArgs e) 

objContainer =Page.ParseControl(“上边的HTML代码); 
this.TempContainer.Controls.Add(objContainer); 

模板已经加载完毕。 
第二部分:加载用户控件 
首先,你要确定用户控件要加载到页面的那个位置。现在你会发现第一部分的那段HTML代码,其中每一个TD都是一个容器你可以通过Page.FindControl找到你要加载控件的容器。如下代码: 
System.Web.UI.Control objControl=Page.FindControl("ContainerTop"); 
第二,找到容器后,就可以将你的用户控件加载到页面中了。如下代码: 
objControl.Controls.Add(base.LoadControl(“用户控件虚拟路径”)); 
现在运行程序看看,是不是已经加载了用户控件。 
以上是动态加载模板和用户控件的一些主要部分,要想做一个比较好的页面还需要加入许多必要的东西,如将模板和用户控件的虚拟路径都保存到数据库中、对页面已经加载了的用户控件进行位置的调整。对权限的控制如那些人可以看什么用户控件那些人不可以 看用户控件,等等。

转载原文:http://blog.163.com/w_jingli/blog/static/3825536920107119392815/

时间: 2024-10-06 05:35:03

在ASP.NET中动态加载内容(用户控件和模板)的相关文章

asp.net动态加载ascx用户控件

原文:asp.net动态加载ascx用户控件 在主aspx/ascx文件中,将目标ascx1,ascx2控件拖拉到其页面中,然后删除,目的是要生成:Register 代码,然后在主文件中定义DIV或Td之类的,设置ID ,runat="server",接下来LoadControl("ascx1") <%@ Control Language="C#" AutoEventWireup="true" CodeFile=&quo

ASP.NET MVC中加载WebForms用户控件(.ascx)

原文:ASP.NET MVC中加载WebForms用户控件(.ascx) 问题背景 博客园博客中的日历用的是ASP.NET WebForms的日历控件(System.Web.UI.WebControls.Calendar),它会为“上一月”.“下一月”的链接生成"__doPostBack()"的js调用,如下图: 目前发现它会带来两个问题: 1. 不支持IE10: 2. 某些电脑不允许执行__doPostBack. 问题提炼 前提: 我们想以最低的成本解决这个问题,也就是对当前代码尽可

ASP.NET中动态加载母版页

在项目开发中,有时应用程序希望能够根据特定的情形来动态地设置母版页.需要动态加载母版页的情形有两种:允许用户使用不同的母版页定制外观呈现:当与其他公司合作,需要调整页面与合作伙伴相同的外观. 开发人员可以通过Page类提供的MasterPageFile属性来为内容页设置母版页.母版页与内容页在页声明周期的早期进行合并.因此不能直接在内容页的Page_Load事件中设置母版页.而需要在Page.PreInit事件中动态加载母版页(Page.PreInit是页执行周期中的第一个事件). [示例]下面

Win8 Metro动态加载内容框架

制作背景 为了参加ImagineCup 2013 世界公民类比赛,我们设计制作了一个可动态扩展的幼教类App.这个App需要能动态加载内容,内容包括带动画可交互的电子书,动画,视频,游戏. 技术支持 2012年10月第一次:因为SVG性能问题,将SVG换为cocos2d-x JSBind,可惜cocos2d-x JSBind不完善,最后换为cocos2d-x html5.11月第二次:cocos2d-x html5性能问题,破产.12月第三次:取消HTML5,转为使用XAML+JS模式. (微软

ASP.NET MVC 动态加载 *.ascx

在Controller中: public ActionResult LoadFoo()        {             return PartialView("Foo", aModel);        } Javascript: function loadFoo() {        $.ajax({            url: "LoadFoo",            success: function(data) {              

ASP.NET MVC动态加载数据

ASP.NET MVC动态加载数据,一般的做法是使用$.each方法来循环产生tabel: 你可以在html时先写下非动态的部分: <table> <tr> <th style="width:10px;"><input id="SelectAll" type="checkbox" /></th> <th>ID</th> <th>Port_Start&l

在MVC应用程序中动态加载PartialView

有时候,我们不太想把PartialView直接Render在Html上,而是使用jQuery来动态加载,或是某一个事件来加载. 为了演示与做好这个练习,我们先在Views目录下的Home下创建_Partial1.cshtml部分视图,视图内容任你自定义,Insus.NET在本例中只让其显示一些文字与一张图片: 接下来,我们需要建立一个ActionResult()方法,在Controllers目录之下,打开HomeController.cs: 再去Views\Home目录,创建一个DynamicL

Java中动态加载jar文件和class文件

概述 诸如tomcat这样的服务器,在启动的时候会加载应用程序中lib目录下的jar文件以及classes目录下的class文件,另外像spring这类框架,也可以根据指定的路径扫描并加载指定的类文件,这个技术可以实现一个容器,容纳各类不同的子应用. Java类由于需要加载和编译字节码,动态加载class文件较为麻烦,不像C加载动态链接库只要一个文件名就可以搞定,但JDK仍提供了一整套方法来动态加载jar文件和class文件. 动态加载jar文件 // 系统类库路径 File libPath =

zTree 从数据库中动态加载树形菜单

这几天做动态菜单用到了这个插件,目前用的很广泛的一个开源框架,最新发布的QUI框架就是用这个插件开发的菜单部分,因此还是很值得深入研究和学习,通过使用感觉功能很丰富,好多函数不用自己开发和编写,官网上有很详尽的API可以参考,用着算顺手但学习使用的过程中也遇到了一些困难,听过反复测试和查资料都理解了,但也在思考一个问题,怎么样才能使得最快的时间从接触一个新东西到灵活掌握的程度? 这个不仅仅是一个树形结构的菜单,每个节点左边可以有一个复选框,看了看也挺简单的,只需要在setting里面配置一个ch