Добавление ASP. Net Обработчик событий кнопки во время выполнения не работает - PullRequest
0 голосов
/ 26 мая 2020

Мне нужно программно добавить обработчик событий к 2 кнопкам, и я не могу заставить его работать. Я пробовал добавлять обработчики событий на всех известных мне этапах жизненного цикла страницы, но событие никогда не срабатывает при нажатии кнопок. У меня есть 2 кнопки: btnEdit1 и btnEdit2. Вот мой код:

protected override void OnInit(EventArgs e)
    {
        if (!IsPostBack)
        {
            base.OnInit(e);
            statusid = "2";
            assetid = "34";

            if (employeeid != null)
            {
                if (statusid == "3" || !SystemsManagementUtils.IsOwner(Convert.ToInt32(assetid), employeeid))
                {
                    btnEdit1.Attributes.Add("onclick", "javascript:alert('You do not have permission to edit this item');");
                    btnEdit2.Attributes.Add("onclick", "javascript:alert('You do not have permission to edit this item');");
                    btnDelete1.Attributes.Add("onclick", "javascript:alert('You do not have permission to delete this item');");
                    btnDelete2.Attributes.Add("onclick", "javascript:alert('You do not have permission to delete this item');");
                }
                else
                {
                    btnEdit1.Click += new EventHandler(btnEdit_Click);
                    btnEdit2.Click += new EventHandler(btnEdit_Click);
                    btnDelete1.Attributes.Add("onclick", "javascript:delItem(" + assetid + ");");
                    btnDelete2.Attributes.Add("onclick", "javascript:delItem(" + assetid + ");");
                }
            }
        }
    }

Я пробовал это с помощью OnPreInit () (не работает, потому что кнопок еще нет), OnInit (), OnInitComplete (), OnPreLoad (), Page_Load ( ), OnLoadComplete (), OnPreRender () и OnPreRenderComplete (). Ни в коем случае событие не срабатывает при нажатии одной из кнопок, даже если я успешно выполнил код до этих строк в отладчике. Я пробовал закомментировать строку base.OnInit (e) - я добавил ее только потому, что видел это в примере. Не знаю, зачем мне это нужно, но я в отчаянии. Почему это не работает?

...