注册用户控件和母板页关联,Ajax局部更新

1.<%@ Register TagPrefix="uc1" TagName="base_newrecord" Src="base_newrecord.ascx" %>

注册一个用户控件到页面上使用,然后这个页面可以响应这个用户控件的服务器端事件

TagPrefix : 定义控件位置的命名空间。有了命名空间制约,就可以在同一个网页里使用不同功能的同名控件。

TagName :指向所使用控件的名字。在同一个命名空间里的控件名是唯一的。控件名一般都表明控件的功能。

Src :指向控件的资源文件。资源文件使用虚路径("control.ascx" 或 "/path/control.ascx"),不能使用物理路径("C:\path\control.ascx.")。 

控件注册之后,就可以象其它服务端控件一样被使用。通过定义目标前缀(TagPrefix)和目标名(TagName),就可以象使用服务端内建控件一样地进行使用。同时也确定了使用服务端运行(runat="server")方式。


2.
   

在这里添加内容页里比母版页多出的部分。内容页里的中的ContentPlaceHolderID属性的值必需是母版页里的ContentPlaceHolderID的属性值的任何一个。

ContentPlaceHolderID:用来对应包含与当前内容关联的 ContentPlaceHolder 的 ID啊

说白了就是去找母版页相应的ContentPlaceHolder ,然后把内容扔进那里面去。
 
  
3.UpdatePanel控制页面的局部更新,这个更新功能依赖于scriptManger控件的EnablePartialRendering属性,如果这个属性设置为false局部更新会失去作用(scriptManger控件的EnablePartialRendering属性的默认值为true不必刻意去设置) 
 
 
 
 
 
 
 
 
 

主要属性: 
1,ChildrenAsTriggers : 内容模板内的子控件的回发是否更新本模板(和UpdateMode的conditional有关) 
2,UpdateMode : 内容模板的更新模式,有always和conditional俩种 
always:每次ajax PostBack或者普通的PostBack都能引起panel的更新 如果UpdatePanel设置为Always时,不能使用上面的ChildrenAsTriggers属性,强行使用会报错,是updatepanel默认的更新模式,和设置trigger触发器没有直接的关系。 
conditional:只有满足如下某一条件时才更新panel的内容 
如果设置UpdateMode="conditional" ChildrenAsTriggers="false"时候,子控件不允许触发更新 
1),当panel中的某个控件引发PostBack时 
2), 当Panel指定的某个Trigger被引发时 
3,RenderMode: 局部更新控件的呈现形式,俩中,Block(局部更新在客户端以div形式展现)和Inline(局部更新以span的形式展现在客户端) 
子元素: 
1,contentTemplate: 局部更新控件的内容模板,可以在其中添加任何控件 
2,Triggers: 局部更新的触发器,包括俩中:异步回发(AsyncPostBackTrigger) 用来实现局部更新。普通回发(PostBackTrigger)和普通的一养,不管是否使用了局部更新控件,都会引起页面的全部更新



你可能感兴趣的:(.Net,ajax,postback,server,triggers,asp,服务器)