string childName); 通过查看GetTemplateChild方法的定义得知,这是一个Protected方法,所以只能在子类中使用,这也就是为什么在常规Xaml.cs文件中无法获取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
<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>
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
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
></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>
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>
=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)
{
}
///
在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
自定义标签 想向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>
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> 最经用的格式
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
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
Button Name="PART_Button" Content="{TemplateBinding Content}" /> <ContentPresenter ContentTemplate ="{TemplateBinding ContentTemplate}" Name="contentPresenter" HorizontalAlignment="Stretch" VerticalAlignment ContentTemplateProperty = AvaloniaProperty.Register<TemplatedControl1, DataTemplate>(nameof(ContentTemplate )); [Content] public IDataTemplate ContentTemplate { get => GetValue
n UpdatePanel有两个重要的子元素,分别是<ContentTemplate>和<Trigger>。 ü <ContentTemplate>元素是更新面板的内容面板,这和GridView等控件的模板类似,可以在其中添加任何控件。 ü <Triggers>元素是可以更新面板的触发器,只有在触发条件满足后才更新<ContentTemplate>元素中的内容。 在UpdatePanel控件的</ContentTemplate>标签后,假如代码为: <Triggers> <asp:AsyncPostBackTriggerControlID= "Timer1 该属性指定在显示UpdateProgress控件的<ContentTemplate>中的内容之前所需要等待的毫秒数,设置一定的延迟可以避免闪烁效果。 @ 本章总结 1.
1.页面定义:<asp:UpdatePanel ID=”UpdatePanel1″ runat=”server”> <ContentTemplate> –控件和其它DIV等 </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger