Calendar1.DayStyle.BackColor=System.Drawing.Color.FromName(ColorList.SelectedItem.Value);}四.ContentTemplateContainer属性如果要使用编程的手法去设置UpdatePanel中的内容,需要创建一个UpdatePanel,并且添加控件到ContentTemplateContainer,而不能直接添加控件到ContentTemplate,如果想直接设置ContentTemplate,则需要编写一个自定义的Template,并去实现位于System.Web.UI命名空间下的接口ITemplate.看一个简单的来自于官方网站的例子:<%@PageLanguage="C#"%>
protectedvoidPage_Load(objectsender,EventArgse){UpdatePanelup1=newUpdatePanel();up1.ID="UpdatePanel1";up1.UpdateMode=UpdatePanelUpdateMode.Conditional;Buttonbutton1=newButton();button1.ID="Button1";button1.Text="Submit";button1.Click+=newEventHandler(Button_Click);Labellabel1=newLabel();label1.ID="Label1";label1.Text="Afullpagepostbackoccurred.";up1.ContentTemplateContainer.Controls.Add(button1);up1.ContentTemplateContainer.Controls.Add(label1);
Page.Form.Controls.Add(up1);}protectedvoidButton_Click(objectsender,EventArgse){((Label)Page.FindControl("Label1")).Text="Panelrefreshedat"+DateTime.Now.ToString();}
五.Triggers属性
在ASP.NETAJAX中有两种Triggers:分别为AsyncPostBackTrigger和PostBackTrigger,AsyncPostBackTrigge用来指定某个服务器端控件以及其将触发的服务器端事件作为该UpdatePanel的异步更新触发器,它需要设置的属性有控件ID和服务端控件的事件;PostBackTrigger用来指定在UpdatePanel中的某个服务端控件,它所引发的回送不使用异步回送,而仍然是传统的整页回送.这一点跟Atlas有很大的区别,大家需要注意.看一个小例子,虽然两个Button都放在了UpdatePanel中,但是由于在PostBackTrigger中指定了Button2,所以它使用的仍然是整页回送.<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="Default2.aspx.cs"Inherits="Default2"%>voidButton1_Click(objectsender,EventArgse){this.Label1.Text="更新时间:"+System.DateTime.Now.ToString();}voidButton2_Click(objectsender,EventArgse){this.Label1.Text="更新时间:"+System.DateTime.Now.ToString();}