我最初需要基于相当多的处理器和磁盘密集型搜索来生成按钮。每个按钮将代表一个选择并触发回发。我的问题是回发不会触发命令 b_Command。我猜是因为原始按钮尚未重新创建。我无法在回发中执行原始搜索以重新创建按钮,因此我想从回发信息中生成所需的按钮。
我应该如何以及在哪里做这件事?例如,我应该在 Page_Load 之前这样做吗?我怎样才能从回发中重建 CommandEventHandler - 如果有的话?
namespace CloudNavigation
{
public partial class Test : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
// how can I re-generate the button and hook up the event here
// without executing heavy search 1
}
else
{
// Execute heavy search 1 to generate buttons
Button b = new Button();
b.Text = "Selection 1";
b.Command += new CommandEventHandler(b_Command);
Panel1.Controls.Add(b);
}
}
void b_Command(object sender, CommandEventArgs e)
{
// Execute heavy search 2 to generate new buttons
Button b2 = new Button();
b2.Text = "Selection 2";
b2.Command += new CommandEventHandler(b_Command);
Panel1.Controls.Add(b2);
}
}
}