0
我需要生成一个动态列表的按钮,我已经做了,附加了一个事件处理程序。动态生成的按钮,点击不被执行
但是,事件处理程序没有被执行。
private void GetOptions(EcoBonusRequest request)
{
var ecobonuswworkflow = WorkflowFactory.CreateEcobonusWorkflow();
ecobonuswworkflow.SetCurrentStep(request.CurrentStatus);
var currentoptions = ecobonuswworkflow.GetCurrentOptions();
foreach(var option in currentoptions)
{
var btn = new Button() {Text = option.OptionName};
btn.Click +=new EventHandler(btn_Click);
Buttons.Controls.Add(btn);
}
}
void btn_Click(object sender, EventArgs e)
{
var btn = (Button) sender;
string command = btn.Text;
EcoBonusRequest request = this.GetDBRequest(RequestBaseId.Value);
EcoBonusRequestBL.AddWorkflowHistoryItem(request, command,CurrentUser, command);
}
您需要在每次回发时重新创建这些按钮(具有与之前相同的ID并且最晚在page_load中)。阅读(特别是第3部分)[真正理解动态控制](http://tinyurl.com/yfc66o) –
你会如何重构这个? –
说实话,如果可能的话,我会只使用[网络数据绑定控件](http://msdn.microsoft.com/zh-cn/library/ms228214.aspx)像中继器。 –