摘要: 讀者詢問如何替網頁動態建立 UpdateProgress 控制項
圖表1
親愛的朋友,如果您要於執行階段動態建立UpdateProgress控制項,您必須建立一個繼承自ITemplate控制項的自訂樣板,並且於 InstantiateIn(Control) 方法中指定標籤,然後將自訂樣板的執行個體指派給動態建立之UpdateProgress控制項的ProgressTemplate屬性。圖表1是我們所撰寫之程式範例的執行畫面,當按下按鈕後,就會開始進行非同步回傳,在此期間,則會顯示內含於UpdateProgress控制項的Gif動畫檔與文字內容,以便告知使用者非同步回傳仍然在處理中。本範例的重點在於,UpdateProgress控制項是動態建立的,相關程式碼列示如下:
protected void Page_Load(object sender, EventArgs e)
{
UpdateProgress myUpdateProgress = new UpdateProgress();
myUpdateProgress.ProgressTemplate = new BarGif("Bar1.gif");
myUpdateProgress.ID = "GifAndText";
Page.Form.Controls.Add(myUpdateProgress);
}
public class BarGif : TemplateControl, ITemplate
{
private string _barPic;
public BarGif(string template)
{
this._barPic = template;
}
public void InstantiateIn(Control container)
{
LiteralControl lc = new LiteralControl("<img src=" + this._barPic + "/>");
container.Controls.Add(lc);
Label _Label = new Label();
_Label.ID = "Label1";
_Label.Text = "載入中..";
container.Controls.Add(new LiteralControl("</br>"));
container.Controls.Add(_Label);
}
}
// 按下按鈕時刻意暫停三秒鐘
protected void Button1_Click(object sender, EventArgs e)
{
System.Threading.Thread.Sleep(3000);
}
章立民研究室