我需要为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)行--我只是因为在一个例子中看到它才加上去的。我不知道为什么我需要它,但我很绝望。为什么这个不能用?