0
我剥离了我的解决方案,以便我可以理解为什么这不起作用。希望有人能帮忙。单击动态链接按钮时维护变量
只有一个aspx页面上的占位符控件:
<asp:PlaceHolder ID="Placeholder1" runat="server" />
在后面的代码,我设置了一个名为测试并在Page_Load中的变量,改变变量别的东西。为什么,当我点击动态添加LinkButton的,在测试变量没有维护它的状态:
public string test = "Hello";
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Response.Write(test + "<br />"); //test = "Hello"
test = "Hello World!";
Response.Write(test + "<br />"); //test = "Hello World!"
}
Placeholder1.Controls.Clear();
CreateDynamicControl();
}
private void CreateDynamicControl()
{
LinkButton lnk = new LinkButton();
lnk.Click += new EventHandler(lbl_Click);
lnk.Text = "TEST LinkButton";
Placeholder1.Controls.Add(lnk);
}
void lbl_Click(object sender, EventArgs e)
{
LinkButton lnk = sender as LinkButton;
Response.Write("lbl_Click: " + test + "<br />");
}
由于我对解决方案感到厌倦,实际上我需要在回发期间维护一个Collection。我仍然应该使用ViewState甚至是Session吗?哪个更好? – user2569353 2010-11-29 18:54:12