1.動態生成button控件及響應服務端和客戶端事件
void BindButtons()
{
foreach (var item in items) { Button Btn = new Button(); Btn.OnClientClick = "showLoading();return true;"; //客戶端事件 //Btn.Attributes.Add("OnClientClick ", "this.disabled=true;return true;"); //無效 //Btn.UseSubmitBehavior = false;/*默認為true時按鈕的type=submit會觸發表單提交;當為false時生成的html里按鈕的type=button是通過js執行__doPostBack(...)來提交表單,為false時OnClientClick里的函數必須return true才能提交form*/ Btn.Width = 180; Btn.Height = 180; Btn.Style.Add("margin", "10px"); Btn.ID = item.UUId; Btn.Text = item.OrgName; Btn.Click += new EventHandler(Btn_Click); this.div1.Controls.Add(Btn); }
}
void Btn_Click(object sender, EventArgs e) {
var btn = sender as Button; Utils.JSExecutor.Execute(this,"alert('"+btn.Id+"')"); }
2.調用:
protected void Page_Load(object sender, EventArgs e) { BindButtons();/*注意動態創建button的位置不能放在下面的if里否則服務端事件不能執行*/ if (!IsPostBack) { BindData(); } }
From:http://www.cnblogs.com/xuejianxiyang/p/5549697.html