Мне нужно программно добавить обработчик событий к 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) - я добавил ее только потому, что видел это в примере. Не знаю, зачем мне это нужно, но я в отчаянии. Почему это не работает?