编写组件,使用JavaScript更新UpdatePanel
2010-09-14 13:31:00 来源:WEB开发网我们使用一个initialized变量来确保Enabled或MethodName属性只能在页面Init时进行修改。由于控件会在多个生命周期中进行操作,如果不做这样的限制,会让控制变得繁琐,容易出错。从下面的代码中会发现,我们会在响应页面的InitComplete事件时将initialized变量设为true。
我们在这里实现JavaScript更新UpdatePanel的做法,和传统的方法异曲同工,只是我们这里将动态添加按钮,并且在这里我们使用LinkButton。我们将响应Page对象的Load事件,添加那个作为Trigger的LinkButton。如下:
动态添加LinkButton
private string clientButtonId = null;
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
this.Page.InitComplete += new EventHandler(Page_InitComplete);
}
private void Page_InitComplete(object sender, EventArgs e)
{ this.initialized = true;
if (this.Enabled)
{
this.Page.Load += new EventHandler(Page_Load);
this.Page.PreRenderComplete += new EventHandler(Page_PreRenderComplete);
}
}
private void Page_Load(object sender, EventArgs e)
{
LinkButton button = new LinkButton();
button.Text = "Update";
button.ID = this.ID + "Button";
button.Style[HtmlTextWriterStyle.Display] = "none";
button.Click += new EventHandler(OnTrigger);
this.Page.Form.Controls.Add(button);
this.clientButtonId = button.UniqueID;
ScriptManager.GetCurrent(this.Page).RegisterAsyncPostBackControl(button);
}
更多精彩
赞助商链接