我会以简单的方式描述我的问题,所以这不是我想要做的,但想法是一样的。这就是问题:
我从后面的代码创建动态按钮。我从查询字符串中获取一些id,创建具有该id的按钮,动态添加事件处理程序以单击事件,并向占位符添加按钮。我在会话和页面加载中存储id-s列表方法重新创建这些按钮并添加到占位符。其中一个id-s是CurrentId,它也存储在session.Buttons中单击处理程序执行类似这样的操作
Button b=(Button)sender;
Session["CurrentId"]=Convert.ToInt32(b.ID);
在我创建按钮时的页面加载中,当从session获取id-s列表时,如果id==Convert.ToInt32(Session["CurrentId"])
,则我想设置与其他按钮文本属性不同的按钮文本属性。但问题是在页面加载后调用click事件处理程序,当我在页面加载中创建按钮时,会话中的CurrentId还没有被click事件处理程序激活。你能建议任何解决这种情况的方法吗?
答案 0 :(得分:1)
看起来您正在尝试更新点击事件触发后动态创建的按钮。为什么不按照您的描述更改click事件中的按钮文本?
即。
protected void button_Clicked(object sender, EventArgs e)
{
((Button)sender).Text = "Custom text for active button";
}
此外,您始终可以更新PreRender事件上的按钮,该事件发生在控件点击事件之后但控制权交还给客户端之前。