这是在做电影院选座的程序,不知道为什么,给自动生成的ImageButton用委托加了imgbtn_SelectedEvent_Click事件,但点ImageButton的时候,imgbtn_SelectedEvent_Click这个事件没有被触发求指点,感激万分。cs代码:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;namespace CinemaWebProject_WebUI
{
    public partial class BuyTickets : System.Web.UI.Page
    {
        string seatNCol = null;
        string seatStatus = null;
        string[] seatInfoByID = new string[5];        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["user"] == null)
            {
                Page.ClientScript.RegisterStartupScript(GetType(), null, "<script type='text/javascript'>alert('请先登录');window.location='/foreground/Login.aspx';</script>");
            }
            if (!Page.IsPostBack)
            {
                LoadDDLControl();
            }
        }
        private void LoadDDLControl()
        {
            LoadDDLMovie();
            LoadDDLHallL(this.ddl_Movie.SelectedValue);
            LoadDDLDateL(this.ddl_Movie.SelectedValue,this.ddl_Hall.SelectedValue);
            LoadDDLScheduleL(this.ddl_Movie.SelectedValue, this.ddl_Hall.SelectedValue,this.ddl_Date.SelectedValue);
            LoadDDLTicketType();
            LoadDDLActivityL(this.ddl_TicketType.SelectedValue);
            ddl_Activity.Enabled = false;            LoadSeatNCol();
            BeforeLoadAllSeat();
        }
        private void LoadDDLMovie()
        { //绑定ddl}
        private void LoadDDLHallL(string selectedvalue)
        { //绑定ddl}
        private void LoadDDLDateL(string selectedvalue, string selectedvalue2)
        { //绑定ddl}
        private void LoadDDLScheduleL(string selectedvalue, string selectedvalue2, string selectedvalue3)
        { //绑定ddl}
        private void LoadDDLTicketType()
        { //绑定ddl}
        private void LoadDDLActivityL(string selectedvalue)
        { //绑定ddl}
        private void LoadSeatNCol()
        {
            //根据所选影厅,获取座位每行数量
            if (ddl_Hall.SelectedValue != "0")
            {
                seatNCol = Business.SeatBusiness.SearchSeatNColByHallID(Convert.ToInt32(ddl_Hall.SelectedValue));
            }
        }
        private void GetSeatStatus()
        {
            Entity.MHS mhs = new Entity.MHS();
            mhs.MovieID = Convert.ToInt32(ddl_Movie.SelectedValue);
            mhs.HallID = Convert.ToInt32(ddl_Hall.SelectedValue);
            mhs.ScheduleID = Convert.ToInt32(ddl_Time.SelectedValue);
            mhs.DateID = Convert.ToInt32(ddl_Date.SelectedValue);            seatStatus = Business.SeatBusiness.SearchSeatNColFromMHS(mhs);
            if (seatStatus == "-1")
            {
                lbl_Nothing.Visible = true;
                lbl_Nothing.Text = "没有该场次";
            }
            else
            {
                lbl_Nothing.Visible = false;
            }
        }        protected void ddl_Movie_SelectedIndexChanged(object sender, EventArgs e)
        {
            this.LoadDDLHallL(this.ddl_Movie.SelectedValue);
            this.LoadDDLDateL(this.ddl_Movie.SelectedValue, this.ddl_Hall.SelectedValue);
            this.LoadDDLScheduleL(this.ddl_Movie.SelectedValue, this.ddl_Hall.SelectedValue, this.ddl_Date.SelectedValue);            LoadSeatNCol();
            BeforeLoadAllSeat();
        }
        protected void ddl_Hall_SelectedIndexChanged(object sender, EventArgs e)
        {
            this.LoadDDLDateL(this.ddl_Movie.SelectedValue, this.ddl_Hall.SelectedValue);
            this.LoadDDLScheduleL(this.ddl_Movie.SelectedValue, this.ddl_Hall.SelectedValue, this.ddl_Date.SelectedValue);            LoadSeatNCol();
            BeforeLoadAllSeat();
        }
        protected void ddl_Date_SelectedIndexChanged(object sender, EventArgs e)
        {
            this.LoadDDLScheduleL(this.ddl_Movie.SelectedValue, this.ddl_Hall.SelectedValue, this.ddl_Date.SelectedValue);            LoadSeatNCol();
            BeforeLoadAllSeat();
        }
        protected void ddl_Time_SelectedIndexChanged(object sender, EventArgs e)
        {
            LoadSeatNCol();
            BeforeLoadAllSeat();
        }
        protected void ddl_TicketType_SelectedIndexChanged(object sender, EventArgs e)
        {
            this.LoadDDLActivityL(this.ddl_TicketType.SelectedValue);
            if (ddl_TicketType.SelectedValue == "1")
            {
                ddl_Activity.Enabled = false;
            }
            else
            {
                ddl_Activity.Enabled = true;
            }            LoadSeatNCol();
            BeforeLoadAllSeat();
        }
        protected void BeforeLoadAllSeat()
        {
            if (ddl_Movie.SelectedValue == "0" || ddl_Hall.SelectedValue == "0" ||
                ddl_Date.SelectedValue == "0" || ddl_Time.SelectedValue == "0" ||
                ddl_TicketType.SelectedValue == "0" || ddl_Activity.SelectedValue == "0")
            {
                lbl_Nothing.Visible = true;
                lbl_Nothing.Text = "没有该场次";
            }
            else
            {
                Entity.MHS mhs = new Entity.MHS();
                mhs.MovieID = Convert.ToInt32(ddl_Movie.SelectedValue);
                mhs.HallID = Convert.ToInt32(ddl_Hall.SelectedValue);
                mhs.ScheduleID = Convert.ToInt32(ddl_Time.SelectedValue);
                mhs.DateID = Convert.ToInt32(ddl_Date.SelectedValue);                int r = Business.SeatBusiness.IsMHSExist(mhs);
                if (r > 0)
                {
                    lbl_Nothing.Visible = false;
                    LoadAllSeat();
                }
                else
                {
                    lbl_Nothing.Visible = true;
                    lbl_Nothing.Text = "没有该场次";
                }
            }
        }
        protected void LoadAllSeat()
        {
            GetSeatStatus();            if (seatStatus != "-1")
            {
                lbl_Nothing.Visible = false;
                
                string[] temp = seatNCol.Split(',');
                int[] seatCol = new int[temp.Length];
                for (int i = 0; i < temp.Length; i++)
                {
                    seatCol[i] = Convert.ToInt32(temp[i]);
                }                Table table = new Table();
                int rowCnt;
                int rowCtr;
                int cellCtr;
                rowCnt = seatCol.Length;
                string initSeatStatus = "-1";
                //是否能被改变ID的标识——为:已售,用户无法改变座位状态 做铺垫
                string enableChanged = "-1";
                //能被改变为1,无法改变为0
                int flag = 0;
                for (rowCtr = 0; rowCtr < rowCnt; rowCtr++)
                {
                    //创建新行并把它添加到表格中
                    TableRow tRow = new TableRow();
                    this.tbl_showSeat.Rows.Add(tRow);
                    for (cellCtr = 0; cellCtr < seatCol[rowCtr]; cellCtr++)
                    {
                        TableCell tCell = new TableCell();
                        tRow.Cells.Add(tCell);
                        string prodID = rowCtr + "_" + cellCtr;
                        tCell.Text = prodID;
                        ImageButton imgbtn = new ImageButton();
                        if (seatStatus.Substring(flag, 1) == "0")
                        {
                            initSeatStatus = "0";
                            enableChanged = "1";
                            imgbtn.ImageUrl = "~/background/seat/img/seat白.png";//Server.MapPath("~/img/") + "shafa白.png";
                        }
                        else if (seatStatus.Substring(flag, 1) == "1")
                        {
                            initSeatStatus = "1";
                            enableChanged = "0";                            imgbtn.ImageUrl = "~/background/seat/img/seat蓝.png";
                        }
                        else if (seatStatus.Substring(flag, 1) == "2")
                        {
                            initSeatStatus = "2";
                            enableChanged = "0";                            imgbtn.ImageUrl = "~/background/seat/img/seat黑.png";
                        }
                        imgbtn.ID = "imgbtn_" + rowCtr + "_" + cellCtr + "_" + initSeatStatus+ "_" +enableChanged;
                        imgbtn.Click += new ImageClickEventHandler(this.imgbtn_SelectedEvent_Click);                        tCell.Controls.Add(imgbtn);                        flag++;
                    }
                }
            }
            else
            {
                lbl_Nothing.Visible = true;
                lbl_Nothing.Text = "没有该场次";
            }
        }        protected void imgbtn_SelectedEvent_Click(object sender, ImageClickEventArgs e)//ImageClickEventArgs  System.EventArgs
        {
            seatInfoByID = ((ImageButton)sender).ID.Split('_');
            string senderName = seatInfoByID[0];
            string rowCtr = seatInfoByID[1];
            string cellCtr = seatInfoByID[2];
            string initSeatStatus = seatInfoByID[3];
            string enableChanged = seatInfoByID[4];            if (enableChanged == "1")
            {
                if (initSeatStatus == "0")
                    initSeatStatus = "1";
                else if (initSeatStatus == "1")
                    initSeatStatus = "0";
            }            ((ImageButton)sender).ID = "imgbtn_" + rowCtr + "_" + cellCtr + "_" + initSeatStatus + "_" + enableChanged;            Response.Write("<script>alert('执行了!')</script>");
            Response.Write("你单击了ImageButton1,坐标为:(" + e.X.ToString() + "," + e.Y.ToString() + ")");
        }        protected void btn_Submit_Click(object sender, EventArgs e)
        {
            //省略
        }
    }
}
委托ImageButtonSelectedEventASP.NET电影院选座