用母摸板新建的aspx页面,有个repeater的数据里面要动态生成ImageButton,怎么我这么们搞了后,ImageButton的Click失效啊,完全没反映,下面是代码:
protected void Ascx_Repeater1_Bound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
HiddenField hf = (HiddenField)e.Item.FindControl("HiddenField1");
string ZhuangTai = hf.Value.ToString();
if (ZhuangTai == 1)
{
PlaceHolder ph = (PlaceHolder)e.Item.FindControl("PlaceHolder1");
ImageButton tupian = new ImageButton();
tupian.ImageUrl = "";
tupian.CommandArgument = "正确";
tupian.Width = Unit.Pixel(50);
tupian.Height = Unit.Pixel(20);
tupian.Click += new ImageClickEventHandler(btn_Click);
ph.Controls.Add(tupian);
}
}
} protected void btn_Click(object sender, ImageClickEventArgs e)
{
ImageButton btn = (ImageButton)sender;
string ceshi=btn.CommandArgument;
Response.Write("<script>alert('错误')</script>"); }
protected void Ascx_Repeater1_Bound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
HiddenField hf = (HiddenField)e.Item.FindControl("HiddenField1");
string ZhuangTai = hf.Value.ToString();
if (ZhuangTai == 1)
{
PlaceHolder ph = (PlaceHolder)e.Item.FindControl("PlaceHolder1");
ImageButton tupian = new ImageButton();
tupian.ImageUrl = "";
tupian.CommandArgument = "正确";
tupian.Width = Unit.Pixel(50);
tupian.Height = Unit.Pixel(20);
tupian.Click += new ImageClickEventHandler(btn_Click);
ph.Controls.Add(tupian);
}
}
} protected void btn_Click(object sender, ImageClickEventArgs e)
{
ImageButton btn = (ImageButton)sender;
string ceshi=btn.CommandArgument;
Response.Write("<script>alert('错误')</script>"); }
不用时Visibled=false;
用时Visibled=true;
这里当Age不足18岁才会显示这个ImageButton1。这样本来很简单的东西,写成代码反而很难维护扩展。
我当初就是这样做的,不过只是repeater的话 并不需要这样做
而
事件回调是在此之前, 所以,点击后得不到响应
应
Ascx_Repeater1_Create 时对ImageButton 指定事件代理
http://www.cnblogs.com/lem-worm/articles/867962.html