2016-05-20 6 views
0

マスターページコード:マイカートラベルの値がマスターページで増加していませんか?

public Label OnlbCartCountMasterPage { 
     get { return this.chartlabel; } 
    } 

Index.aspxコード

String cs = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString; 
string cartQuantity; 
protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     LoadList(); 
    } 

    if (Session["addtocart"] != null) 
    { 
     DataTable dt = new DataTable(); 
     cartQuantity = Convert.ToString(dt.Rows.Count); 

    } 
    else 
    { 

     cartQuantity = "0"; 
    } 
    Master.OnlbCartCountMasterPage.Text = cartQuantity; 
} 

Add2cart方法:問題がpで発生している

private void add2cart(int id,string lblname,int lblPrice, int lbltotal, int quantitylist, string image) 
{ 

    if (Session["addtocart"] != null) 
    { 
     DataTable dt = (DataTable)Session["addtocart"]; 
     var dataRow = dt.AsEnumerable().Where(x => x.Field<int>("ID") == id); 
     if (dataRow.Count() == 0) 
     { 
      //lblErrorMessage.Text = ""; 
      DataRow dr = dt.NewRow(); 
      dr["ID"] = id; 
      dr["Item"] = lblname; 
      dr["Price"] = lblPrice; 
      dr["quantity"] = quantitylist; 
      dr["total"] = lbltotal; 
      dr["image"] = image; 

      dt.Rows.Add(dr); 
      Session["addtocart"] = dt; 
      cartQuantity= dt.Rows.Count.ToString(); 
      Master.OnlbCartCountMasterPage.Text = cartQuantity; 
     } 
     else 
     { 
      //lblErrorMessage.Text = "Item Already Added!"; 
     } 

    } 
    else 
    { 
     DataTable dt = new DataTable(); 
     dt.Columns.Add("ID", typeof(int)); 
     dt.Columns.Add("Item", typeof(string)); 
     dt.Columns.Add("Price", typeof(int)); 
     dt.Columns.Add("quantity", typeof(int)); 
     dt.Columns.Add("total", typeof(int)); 
     dt.Columns.Add("image", typeof(string)); 
     DataRow dr = dt.NewRow(); 
     dr["ID"] = id; 
     dr["Item"] = lblname; 
     dr["Price"] = lblPrice; 
     dr["quantity"] = quantitylist; 
     dr["total"] = lbltotal; 
     dr["image"] = image; 
     dt.Rows.Add(dr); 
     Session["addtocart"] = dt; 
     cartQuantity=Convert.ToString(dt.Rows.Count); 
    } 
    Master.OnlbCartCountMasterPage.Text = cartQuantity; 
} 

ボタンのコード

protected void btnAddtoCart_Click(object sender, EventArgs e) 
{ 
    Button btn = (Button)sender; 
    ListViewItem item = (ListViewItem)btn.NamingContainer; 
    HiddenField hfid = item.FindControl("hfId") as HiddenField; 
    Label lblitem= item.FindControl("item") as Label; 
    Label lblPrice = item.FindControl("lblPrice") as Label; 
    DropDownList lblQuantity = item.FindControl("qtydrpdwn") as DropDownList; 
    Label lblTotal = item.FindControl("Total") as Label; 
    HiddenField hfimg = item.FindControl("imgpath") as HiddenField; 

    add2cart(Convert.ToInt32(hfid.Value),lblitem.Text, Convert.ToInt32(lblPrice.Text), Convert.ToInt32(lblTotal.Text), Convert.ToInt32(lblQuantity.Text),hfimg.Value); 
    btn.Enabled = false; 

    //Response.Redirect("index.aspx"); 
} 

私は思う?セッションがadd2cartメソッドからの値を認識しないためです。カートに追加するがページの読み込みではないセッションの値を表示しています。私はコードの問題を見つけることができません?

そして、ボタンをクリックすると、カートに追加されます。値は全く変わらず0になりますか?

+0

ここで、あなたは 'add2cart(...)'を呼び出しますか?ボタンの –

+0

.. –

+0

add2cart(Convert.ToInt32(hfid.Value)、lblitem.Text、Convert.ToInt32(lblPrice.Text)、Convert.ToInt32(lblTotal.Text)、Convert.ToInt32(lblQuantity.Text)、hfimg 。値); –

答えて

0

これを試してください。私は、ボタンが押されるたびに呼び出される別個のメソッドで更新ルーチンをアウトソーシングしました。

String cs = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString; 
string cartQuantity; 

// this will be executed when the page is loaded at the beginning or when refreshed 
protected void Page_Load(object sender, EventArgs e) 
{ 
    // I don't know what this does, if you also need it for the update 
    // then put it into the updateQuantity method 
    if (!IsPostBack) 
    { 
     LoadList(); 
    } 

    // update quantity 
    updateQuantity(); 
} 

// method to update the quantity 
private void updateQuantity() 
{ 
    if (Session["addtocart"] != null) 
    { 
     DataTable dt = new DataTable(); 
     cartQuantity = Convert.ToString(dt.Rows.Count); 
    } 
    else 
    { 
     cartQuantity = "0"; 
    } 
    Master.OnlbCartCountMasterPage.Text = cartQuantity; 
} 


protected void btnAddtoCart_Click(object sender, EventArgs e) 
{ 
    Button btn = (Button)sender; 
    ListViewItem item = (ListViewItem)btn.NamingContainer; 
    HiddenField hfid = item.FindControl("hfId") as HiddenField; 
    Label lblitem= item.FindControl("item") as Label; 
    Label lblPrice = item.FindControl("lblPrice") as Label; 
    DropDownList lblQuantity = item.FindControl("qtydrpdwn") as DropDownList; 
    Label lblTotal = item.FindControl("Total") as Label; 
    HiddenField hfimg = item.FindControl("imgpath") as HiddenField; 

    add2cart(Convert.ToInt32(hfid.Value),lblitem.Text, Convert.ToInt32(lblPrice.Text), Convert.ToInt32(lblTotal.Text), Convert.ToInt32(lblQuantity.Text),hfimg.Value); 
    btn.Enabled = false; 

    //call update method 
    updateQuantity(); 
} 
関連する問題