lbT.Attributes.Add("onclick","display()")
前台
<script type="text/javascript">
function display() {
alert('你好,这是Label点击事件')
}
</script>
<asp:Label runat="server" ID="lbT" Text="Label点击事件"></asp:Label>
这里的关键点在于,必须在Page_Load事件中每次都调用创建控件的代码。这与我们一般的理解是不一样的。因为这些控件是动态添加的,在页面的源文件中并没有。所以PostBack回来之后重新构建页面时,非得再次创建。这样做不会重复创建,因为每次都重新构建了,其实原先的控件都消失了。另外提醒注意:在动态创建控件的页面上,如果禁用ViewState,将使得页面失去作用。
所以对于你的代码,是没有错的。
只是在页面提交后,你必须在 Page_Load事件里面先重新创建你的 file_bt。
这样就没有问题了。
例如你做一个简单的例子,就能看到你要的效果。
在 Page_Load 事件里面写
Button file_bt = new Button()
file_bt.Width = 40
file_bt.Text = "完成"
file_bt.ID=dr["task_id"].ToString()
file_bt.Click+=new System.EventHandler(file_bt_Click)
然后这直接在方法中写
protected void file_bt_Click(object sender, EventArgs e)
{
Button b1 = (Button)sender
Label1.Text = "ok"
// showtask(int.Parse(Session["sele_wbs"].ToString()))
}
这样你就可以看到效果了。
注意,Page_Load方法中创建btn的那几个步骤,不能放到 if(!ispostback)
中哦。否则无法重新在提交的时候构建这个按钮。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)