讀者詢問如何替網頁動態建立 UpdateProgress 控制項

摘要: 讀者詢問如何替網頁動態建立 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);
    }

 

章立民研究室 2007/6/28