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);
        }
4

1 回答 1

2

您在页面中动态添加的控件必须在 Page_init 事件中添加,并且它们必须具有唯一的 Id。如果您要添加文本框或其他一些用户可以输入或更改值的控件,那么在重新添加这些控件时,它们必须具有相同的 ID。

于 2012-06-15T08:53:58.207 回答