如何在Asp中执行事件? [英] How Can I Execute Event In Asp ?
本文介绍了如何在Asp中执行事件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在asp中写事件以复选框和图像按钮但由于某种原因事件不会触发
我该如何解雇事件?
i write event in asp to to check box and to imagebutton but for some reason the event doesn't fire
how can i fire the event?
namespace WebApplication2
{
public partial class About : System.Web.UI.Page
{
List<Product> Prod = new List<Product>();
CheckBox buy = new CheckBox();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DAL dalsql = new DAL();
// ask what the user chouse
string StoreName = Request.QueryString["StoreName"];
URegistration regis = new URegistration() { Getstorename = StoreName };
storenamelabel.Text = regis.Getstorename;
//Ask for the selected number of product
Prod= dalsql.ImportSqlData(regis);
List<Panel> p = new List<Panel>();
for (int i = 0;Prod.Count > i; i++)
{
p.Add(new Panel()
{
ID=Convert.ToString(i),
ToolTip = "hy",
CssClass = "Panel"
});
Label label = new Label()
{
Text = Prod[i].ProductName,
ForeColor=System.Drawing.Color.Black,
CssClass="Label"
};
ImageButton img = new ImageButton()
{
ID=Convert.ToString(i),
Height = 171,
Width=150,
BorderColor = System.Drawing.Color.Gray
};
//Event that i created
img.Click += new ImageClickEventHandler(img_Click);
Label price = new Label()
{
Text="Price :"+Prod[i].Price+"$",
ForeColor=System.Drawing.Color.LightGreen,
CssClass="price"
};
buy = new CheckBox()
{
ID=Prod[i].ProductName,
Text="BUY",
ForeColor = System.Drawing.Color.Gold,
BorderColor=System.Drawing.Color.Black
};
//Event that i created
buy.CheckedChanged += new EventHandler(this.buy_CheckedChanged);
MemoryStream ms = new MemoryStream(Prod[i].img, 0, Prod[i].img.Length);
ms.Position = 0; // this is important
p[i].Controls.Add(label);
p[i].Controls.Add(img);
p[i].Controls.Add(price);
p[i].Controls.Add(buy);
Panel2.Controls.Add(p[i]);
Panel2.Wrap = true;
}
}
}
//Event not fire! i dont know why
void img_Click(object sender, ImageClickEventArgs e)
{
ImageButton img=sender as ImageButton;
TextBox te = new TextBox()
{
Text="helooo"
};
Panel2.Controls.Add(te);
}
ListItem ShopingList=new ListItem();
//Event not fire! i dont know why
private void buy_CheckedChanged(object sender, EventArgs e)
{
CheckBox buy = sender as CheckBox;
if(buy.Checked==true)
{
ShopingList = new ListItem() { Text = buy.ID };
BulletedListshoping.DisplayMode = BulletedListDisplayMode.HyperLink;
BulletedListshoping.Items.Add(ShopingList);
}
推荐答案
,
ForeColor = System.Drawing.Color .LightGreen,
CssClass = price
};
buy = new CheckBox()
{
ID = Prod [i] .ProductName,
Text = 购买,
ForeColor = System.Drawing.Color。黄金,
BorderColor = System.Drawing.Color.Black
};
// 我创建的事件
buy.CheckedChanged + = new EventHandl呃( this .buy_CheckedChanged);
MemoryStream ms = new MemoryStream(Prod [i] .img, 0 ,Prod [i] .img.Length);
ms.Position = 0 ; // 这很重要
p [i] .Controls.Add(label );
p [i] .Controls.Add(img);
p [i] .Controls.Add(price);
p [i] .Controls.Add(buy);
Panel2.Controls.Add(p [i]);
Panel2.Wrap = true ;
}
}
}
// 事件不是火!我不知道为什么
void img_Click( object sender,ImageClickEventArgs e)
{
ImageButton img = sender as ImageButton;
TextBox te = new TextBox()
{
Text = helooo
};
Panel2.Controls.Add(te);
}
ListItem ShopingList = new ListItem();
// 活动没有火!我不知道为什么
private void buy_CheckedChanged( object sender,EventArgs e)
{
CheckBox buy = sender as CheckBox;
if (buy.Checked == true )
{
ShopingList = new ListItem(){Text = buy.ID};
BulletedListshoping.DisplayMode = BulletedListDisplayMode.HyperLink;
BulletedListshoping.Items.Add(ShopingList);
}
", ForeColor=System.Drawing.Color.LightGreen, CssClass="price" }; buy = new CheckBox() { ID=Prod[i].ProductName, Text="BUY", ForeColor = System.Drawing.Color.Gold, BorderColor=System.Drawing.Color.Black }; //Event that i created buy.CheckedChanged += new EventHandler(this.buy_CheckedChanged); MemoryStream ms = new MemoryStream(Prod[i].img, 0, Prod[i].img.Length); ms.Position = 0; // this is important p[i].Controls.Add(label); p[i].Controls.Add(img); p[i].Controls.Add(price); p[i].Controls.Add(buy); Panel2.Controls.Add(p[i]); Panel2.Wrap = true; } } } //Event not fire! i dont know why void img_Click(object sender, ImageClickEventArgs e) { ImageButton img=sender as ImageButton; TextBox te = new TextBox() { Text="helooo" }; Panel2.Controls.Add(te); } ListItem ShopingList=new ListItem(); //Event not fire! i dont know why private void buy_CheckedChanged(object sender, EventArgs e) { CheckBox buy = sender as CheckBox; if(buy.Checked==true) { ShopingList = new ListItem() { Text = buy.ID }; BulletedListshoping.DisplayMode = BulletedListDisplayMode.HyperLink; BulletedListshoping.Items.Add(ShopingList); }
您已在PageLoad中重新创建动态控件,或者可以在会话等中保留。
参考
在ASP.NET中动态创建控件 [ ^ ]
asp-net-dynamic-button-with-event-handler [ ^ ]
You have Recreate the Dynamic controls in the PageLoad or can be persisted in Session etc.
Refer
Dynamically Created Controls in ASP.NET[^]
asp-net-dynamically-button-with-event-handler[^]
这篇关于如何在Asp中执行事件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文