个位高手们,我遇到了一个奇怪的问题!!
就是,我做了一个购物车网站,购物车功能是:
每个物品下面有一个按钮,当点击它后物品会放入购物车中.但是我运行项目后,怎么有时后点击它有效有时候却没效??
这种情况会出现在以下几种状态下:
一,运行后,点击无效,那一直就无效.除非重新运行才可能有效
二,运行后,点击有效,但那个按钮也要在你点击N次后才有效(N表示也许是2次或更多次,在不同的运行情况下出现),只要有一个按钮有效后,其他的按钮就可以一次成功.
问题就在与那个按钮事件为什么有时候不会被触发,也可能是那个自定义控件的调用问题(但又为什么调用也那么不稳定).下面是代码:
#region Web 窗体设计器生成的代码
        override protected void OnInit(EventArgs e)
        {
            
             //CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
            
            InitializeComponent();
            base.OnInit(e);
        }        /// <summary>
        ///设计器支持所需的方法 - 不要使用代码编辑器
        ///修改此方法的内容。
        /// </summary>
        private void InitializeComponent()
        {
            this.btnBuy.Click += new System.Web.UI.ImageClickEventHandler(this.btnBuy_Click);        }
        #endregion        private void btnBuy_Click(object sender, System.Web.UI.ImageClickEventArgs e)
        {
            if (Session["member"] == null)
            {
                Response.Redirect("/ShoppingCar/login.aspx");
            }            objSaveProduct = new saveProduct();
            file = Server.MapPath(Session["member"].ToString() + ".xml");
            objSaveProduct.saveProductInfo(this._productid, this.lblName.Text, Convert.ToDouble(this._price), Convert.ToInt32(ddlCount.SelectedValue), file);
            Response.Write("<script>alert('商品已经放入你的购物车里!')</script>");        }在另一个界面的PlaceHolder里调用这个界面,这是调用代码:
protected void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!Page.IsPostBack)
{
this.ShowProductInfo();
}
else
{
if(Cache["table"]==null)
{
this.ShowProductInfo();
}
Table table=(Table)Cache["table"];
this.PlaceHolder1.Controls.Add(table);
}  这是ShowProductInfo的内容:public void ShowProductInfo()
{
try
{
int sum=0;
typeid=Request.QueryString["typeid"];
pageid=Request.QueryString["pageid"];
Session["saveTypeid"]=typeid;
if(typeid==null)
{
typeid="1";
}
else
{
typeid=typeid;
}
if(pageid==null)
{
pageid="0";
}
else
{
pageid=pageid;
}
this.linkMore.NavigateUrl="FullProduct.aspx?typeid="+typeid;
Session["typeid"]=typeid;
con=new SqlConnection(ConfigurationSettings.AppSettings["Connect"]);
cmd=new SqlCommand("selectFullProduct",con);
cmd.CommandType=CommandType.StoredProcedure;cmd.Parameters.Add("@typeid",Convert.ToInt32(typeid));
cmd.Parameters.Add("@counter",Convert.ToInt32(pageid));
parameter=cmd.Parameters.Add("@summ",SqlDbType.Int);
parameter.Direction=ParameterDirection.ReturnValue;
Table table=new Table();
TableRow row=new TableRow();con.Open();
reader=cmd.ExecuteReader();
while(reader.Read()){
if(sum%2==0)
{
row=new TableRow();
}
objProduct=(productInfo)this.LoadControl("productInfo.ascx");
objProduct.ImageUrl=reader["productImageUrl"].ToString();
objProduct.ProductID=reader["productID"].ToString();
objProduct.Name=reader["productName"].ToString();
objProduct.Price=Convert.ToDouble(reader["productPrice"]);
objProduct.Count=Convert.ToInt32(reader["productCount"]);
TableCell cell=new TableCell();
cell.Controls.Add(objProduct);
row.Cells.Add(cell);
table.Rows.Add(row);
sum++;
}this.PlaceHolder1.Controls.Add(table);
reader.Close();
if(Session["summ"]==Session["saveTypeid"]||Session["summ"]==null)
{
cmd.ExecuteNonQuery();
Session["summ"]=parameter.Value;
}
Cache["table"]=table;
con.Close();}
catch(Exception ie)
{
if(con.State==ConnectionState.Open)
{
con.Close();
}
throw new ApplicationException(ie.ToString());
}
}江湖救急!!!!!!!个位老大,帮看看呀,小弟在这谢过了
解决的话,小弟会想办法给出自己的所有分(我还不会给分!)!