C#在asp.net后台中如何为一个动态控件添加runat="server"属性

2024-12-19 06:42:51
推荐回答(3个)
回答1:

这几乎是不可能的。


为什么?

  1. 每个页面都有生命周期,每个生命周期,都会做一些事情。InitComplete(初始化页面)事件,这是事件就是用来为runat=“server”的控件保存入控件树,并且加载视图状态。也正因为有这个事件,将runat=“server”的控件保存入控件树,我们才能在后台中通过id访问到服务器空间。

  2. 从1可以看出,如果你想为任何一个控件添加runat=“server”,一定要在InitComplete()这个事件之前,添加这个属性。那么只有在Init()这个时间中,找到你想操作的控件,然后添加runat属性,但是这个时候,你根本找不到你想操作的控件,因为控件还没添加入控件树。

回答2:

asp.net中为一个动态控件添加runat="server"属性方法:
定义一个button:
Button b = new Button();
b.Text = "Go back!";
b.ID = "btn_Back";
//设置click事件:
b.Click += new EventHandler(btn_Click);

然后注册btn_Click函数:

void btn_Click(object sender, EventArgs e)
{
throw new NotImplementedException();
}

回答3:

动态控件添加runat="server"之后才能在后台控制,不然后台也不能控制