如何在Asp中执行事件? [英] How Can I Execute Event In Asp ?

查看:90
本文介绍了如何在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆