Asp.net 寻呼机点击事件未触发,其背后的逻辑是啥?
Posted
技术标签:
【中文标题】Asp.net 寻呼机点击事件未触发,其背后的逻辑是啥?【英文标题】:Asp.net pager click event not firing , what is the logic behind it?Asp.net 寻呼机点击事件未触发,其背后的逻辑是什么? 【发布时间】:2009-12-25 08:34:19 【问题描述】:我不明白的是,我有一个pager_Create函数,是这样的
public void createPager()
Div_Pager.Controls.Clear();
ImageButton left = new ImageButton(); left.ID = "leftButton";// +new Random().Next();
left.Click+=new ImageClickEventHandler(pager_Left_Click);
left.ImageUrl = "http://" + Request.ServerVariables["SERVER_NAME"] + ":" + Request.ServerVariables["SERVER_PORT"] + "/Teknik_raporlar/left.bmp";
ImageButton right = new ImageButton(); right.ID = "rightButton";// +new Random().Next();
right.Click+=new ImageClickEventHandler(pager_Right_Click);
right.ImageUrl = "http://" + Request.ServerVariables["SERVER_NAME"] + ":" + Request.ServerVariables["SERVER_PORT"] + "/Teknik_raporlar/right.bmp";
Div_Pager.Controls.Add(left);
Div_Pager.Controls.Add(right);
if (int.Parse(ViewState["NOP"].ToString()) <= 1) // Number of Pages
Div_Pager.Visible = false;
else
Div_Pager.Visible = true;
if (int.Parse(ViewState["CurrentPage"].ToString()) <= 1)
left.Visible = false;
if (int.Parse(ViewState["CurrentPage"].ToString()) >= int.Parse(ViewState["NOP"].ToString()))
right.Visible = false;
protected void pager_Left_Click(object sender, EventArgs e)
ViewState["CurrentPage"] = int.Parse(ViewState["CurrentPage"].ToString()) - 1;
protected void pager_Right_Click(object sender, EventArgs e)
ViewState["CurrentPage"] = int.Parse(ViewState["CurrentPage"].ToString()) + 1;
我不明白的是,这个寻呼机按钮怎么没有触发?我的意思是每次创建寻呼机时我都会创建相同的按钮。那怎么可能。它与页面渲染有什么关系。我的简化代码是这样的:
override Render()
function1()
Page_Load()
function1()
funtion1()
createpager()
【问题讨论】:
【参考方案1】:您正在创建和重新创建动态控件,正常控件事件绑定有效 如果完成是 Page_Load() ,但不适用于动态创建的控件。
您需要在 PreInit 中创建动态控件(或至少在 OnInit() 中创建并附加事件本身。动态控件需要在每次回发时重新创建。
另外,你的按钮 ID 每次都需要是新的,
比如left.ID = "leftButton"+random_no.ToString();
这是动态创建控件的最佳实践。
http://www.singingeels.com/Articles/Dynamically_Created_Controls_in_ASPNET.aspx
它的文章很长,但请通过。
【讨论】:
以上是关于Asp.net 寻呼机点击事件未触发,其背后的逻辑是啥?的主要内容,如果未能解决你的问题,请参考以下文章