string childName); 通过查看GetTemplateChild方法的定义得知,这是一个Protected方法,所以只能在子类中使用,这也就是为什么在常规Xaml.cs文件中无法获取ContentTemplate
<asp:Button ID=”Button1″ runat=”server” OnClick=”Button1_Click” Text=”Button” /> </ContentTemplate ID=”UpdatePanel2″ runat=”server” RenderMode=”Inline” UpdateMode=”Conditional”> <ContentTemplate =”Button1″ runat=”server” OnClick=”Button1_Click1″ Text=”更新两个UpdatePanel” /> </ContentTemplate > </asp:UpdatePanel> </ContentTemplate> > </asp:UpdatePanel> </ContentTemplate>
> <cc1:TabPanel ID="TabPanel2" runat="server" HeaderText="文学"> <ContentTemplate > 111-文学 </ContentTemplate> </cc1:TabPanel > 222-历史 </ContentTemplate> </cc1:TabPanel > 333-科技 </ContentTemplate> </cc1:TabPanel > 444-军事 </ContentTemplate> </cc1:TabPanel
ID=”UpdatePanel1″ runat=”server” ChildrenAsTriggers=”true” UpdateMode=”Always” RenderMode=”Block”> <ContentTemplate > </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger /> <asp:PostBackTrigger /> </Triggers </asp:ScriptManager> <asp:UpdatePanel ID=”UpdatePanel1″ runat=”server” UpdateMode=”Always”> <ContentTemplate DateTime.Now.ToString()%> <asp:Button ID=”Button1″ runat=”server” Text=”UpdatePanelButton” /> </ContentTemplate > <% =DateTime.Now.ToString()%> </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger ControlID
></ContentTemplate>之后添加 <Triggers><asp:AsyncPostBackTrigger ControlID=”Button2″ EventName=”Click > <asp:Label ID=”Label2″ runat=”server” Text=”Label”></asp:Label> </ContentTemplate > <asp:Label ID=”Label2″ runat=”server” Text=”Label”></asp:Label> </ContentTemplate > <asp:Label ID=”lb2″ runat=”server”></asp:Label> </ContentTemplate > </asp:UpdatePanel> </ContentTemplate> </asp:UpdatePanel> 在Button1控件中的
用户名:<asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
ID="UpdatePanel1" runat="server" ChildrenAsTriggers="true" UpdateMode="Always" RenderMode="Block"> <ContentTemplate > </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger /> <asp:PostBackTrigger /> </Triggers> Trigger被引发时 3,RenderMode: 局部更新控件的呈现形式,俩中,Block(局部更新在客户端以div形式展现)和Inline(局部更新以span的形式展现在客户端) 子元素: 1,contentTemplate =DateTime.Now.ToString()%> <asp:Button ID="Button1" runat="server" Text="UpdatePanelButton" /> </ContentTemplate =DateTime.Now.ToString()%> <asp:Button ID="Button1" runat="server" Text="UpdatePanelButton" /> </ContentTemplate
=DateTime.Now.ToString()%>
<asp:Button ID="Button1" runat="server" Text="UpdatePanelButton" />
</ContentTemplate UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="false">
<ContentTemplate =DateTime.Now.ToString()%>
<asp:Button ID="Button1" runat="server" Text="UpdatePanelButton" />
</ContentTemplate >
<% =DateTime.Now.ToString()%>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID > <% =DateTime.Now.ToString()%> </ContentTemplate> </asp:UpdatePanel>
<asp:Button ID="Button1"
protected virtual void OnContentChanged(object oldValue, object newValue)
{
}
///
Accordion控件也能够进行数据绑定,通过DataSource或 DataSourceID属性指定一个数据源,然后设置标题数据字段(HeaderTemplate)和内容数据字段(ContentTemplate </HeaderTemplate> <ContentTemplate>... </ContentTemplate> </ajaxToolkit:Accordion>SelectedIndex - 当 Accordion 被初始化的 AccordionPane > Pane: <%# Eval("name") %> </ContentTemplate> </ajaxToolkit:Accordion> Bound > Data: <%# Eval("Value") %> </ContentTemplate> </ajaxToolkit:Accordion> 最经用的格式
在UWP中,Button、CheckBox、ScrollViewer、Frame、ToolTip等都继承自ContentControl,其它控件则不是在ContentTemplate中使用ContentControl ContentControl的定义并不复杂,它主要包含这四个属性:Content,ContentTemplate,ContentTemplateSelector,ContentTransitions。 ContentTemplate 要将ContentControl的内容按自己的想法显示出来,可以使用ContentTemplate属性public DataTemplate ContentTemplate "Center" /> </Border> </DataTemplate> </Grid.Resources> <ContentControl ContentTemplate ContentTemplateSelector 如果需要根据Content动态地选择要使用的ContentTemplate,其中一个方法就是 public DataTemplateSelector ContentTemplateSelector
ID="UpdatePanel1" runat="server" ChildrenAsTriggers="true" UpdateMode="Always" RenderMode="Block"> <ContentTemplate > </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger /> <asp:PostBackTrigger /> </Triggers> Trigger被引发时 3,RenderMode: 局部更新控件的呈现形式,俩中,Block(局部更新在客户端以div形式展现)和Inline(局部更新以span的形式展现在客户端) 子元素: 1,contentTemplate =DateTime.Now.ToString()%> <asp:Button ID="Button1" runat="server" Text="UpdatePanelButton" /> </ContentTemplate > <% =DateTime.Now.ToString()%> </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger ControlID
ContentTemplate属性 Contente Template标签用来定义UpdatePanel的内容,在它里面可以放任何ASP.NET元素。 如果你想要使用编程的手法来控制UpdatePanel中的内容,就需要使用ContenteTemplateContainer,下面会说到,先来看一个简单的ContentTemplate的例子。 <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <asp:Calendar ID="Calendar1 Value="DarkKhaki"> Dark Khaki </asp:ListItem> </asp:DropDownList>
自定义标签 想向js一样自定义一个组件,过程很复杂,并没有js那样好操作,直接上代码吧, <UserControl.ContentTemplate> <DataTemplate> ContentPresenter Content="{Binding}" Grid.Row="1" /> </Grid> </DataTemplate> </UserControl.ContentTemplate get { return (string)GetValue(HeaderProperty); } set{SetValue(HeaderProperty, value);} } 讲解 使用模板contenttemplate
> RenderMode="Block" </ContentTemplate> </asp:UpdatePanel> > RenderMode="Inline" </ContentTemplate> </asp:UpdatePanel> > <%= DateTime.Now %> </ContentTemplate> </asp:UpdatePanel> > <%= DateTime.Now %> </ContentTemplate> </asp:UpdatePanel> > <%= DateTime.Now %> </ContentTemplate> </asp:UpdatePanel>
面对这个数据的外观定义,你要使用 ContentTemplate 来做。 当然,ContentTemplate 内容模板和 ControlTemplate 控件模板长得很像,但是不一样的概念,ContentTemplate 和 Content 是一对内容,相互配合才能实现最好的效果 ,作为 Content 的好兄弟,ContentTemplate 自然也是依赖属性,在 ContentPresenter 中发挥作用。 我们为 Button 在更新了 Style 后,编写了对应的 ContentTemplate。 让我们把上面写的 ContentTemplate 中的 DataTemplate 交给 ItemsControl 的 ItemTemplate 中去。
server"> </asp:ScriptManager> <asp:UpdatePanel ID="up1" runat="server"> <ContentTemplate > <%= DateTime.Now-this.m_start %> </ContentTemplate> </asp:UpdatePanel <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> <ContentTemplate Button1" runat="server" Text="Refresh" onclick="Button1_Click" /> </ContentTemplate Button2" runat="server" Text="Refresh" onclick="Button2_Click" /> </ContentTemplate
StrokeThickness="0" Margin="1"/> <ContentPresenter x:Name="contentPresenter" ContentTemplate ="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" HorizontalAlignment </telerik:RadTransitionControl.Transition> <telerik:RadTransitionControl.ContentTemplate Stretch="Uniform" /> </DataTemplate> </telerik:RadTransitionControl.ContentTemplate
TemplateSettings.HeaderFontWeight}" Content="{TemplateBinding Header}" ContentTemplate ="{TemplateBinding ContentTemplate}" ContentTransitions="{TemplateBinding ContentTransitions ="{TemplateBinding ContentTemplate}" ContentTransitions="{TemplateBinding ContentTransitions ="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" ="{TemplateBinding ContentTemplate}" Padding="{TemplateBinding Padding}" HorizontalContentAlignment
contentPresenter" Content="{TemplateBinding Content}" ContentTemplate ="{TemplateBinding ContentTemplate}" VerticalAlignment="{TemplateBinding VerticalContentAlignment Hand" Content="{TemplateBinding Content}" ContentTemplate ="{TemplateBinding ContentTemplate}" HorizontalAlignment="{TemplateBinding contentPresenter" Content="{TemplateBinding Content}" ContentTemplate