2

实际上我必须从下面给出的购物车表中访问税收和总额,然后通过将这些值分配给它们的内部文本,将它们分配给 aspx 页面中的跨度,

我使用了断点并调试了我的代码,但问题太复杂了......->我看到通过在 bindtotal() 方法中的调试中将鼠标指向那里正确显示了内部文本(分配的文本),但是这个.aspx 页面上未显示的文本,,,我的意思是,即使分配了 aspx 页面上的跨度文本仍然是空的。为什么 ??????

.aspx

<b>subtotal:</b>
<span id="span_subtotal" runat="server"></span>                         
<br/>
<b>Total:</b>                           
<span id="span_granttotal" runat="server"></span>

。CS

这些跨度的内部文本为空以运行以下代码............任何人都可以帮我解决这个问题????????

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {            
        if (Session["cart_table"] == null)
        {
            DataTable dt = new Spcart().GetCart();
            Session["cart_table"] = dt;                  
        }
        BindCartListView();            
    }
}

public void bindtotal(int tax, int total)
{
    int ptax = 0;
    ptax = ptax + tax;

    int subtotal = 0;
    subtotal = subtotal + total;

    int granttotal = 0;
    granttotal = granttotal + ptax +subtotal;

    ///////////setting innertext///////////////////////

    span_subtotal.InnerText = subtotal.ToString();
    span_granttotal.InnerText = granttotal.ToString();
}

public void BindCartListView()
{                        
    DataTable producttable = new BALCate().GetProductDeatils(int.Parse(Request.QueryString["pid"].ToString()));
    DataTable carttable = (DataTable)Session["cart_table"];
    DataRow cartrow;
    DataRow productrow;

        cartrow = carttable.NewRow();
        productrow = producttable.Rows[0];
        cartrow["Pid"] = productrow["pid"];
        cartrow["PImage"] = productrow["pimg_mid1"];
        cartrow["Pprice"] = productrow["pcost"];
        cartrow["Pqty"] = int.Parse(Request.QueryString["qty"].ToString());                
        cartrow["Pname"] = productrow["pname"];
        cartrow["ptax"] = productrow["ptax"];
        cartrow["Total"] = int.Parse(productrow["pcost"].ToString()) * int.Parse(cartrow["Pqty"].ToString());  

        carttable.Rows.Add(cartrow);        

        int tax=int.Parse(cartrow["Ptax"].ToString());
        int total = int.Parse(cartrow["Total"].ToString());
        bindtotal(tax, total);        

 ListView_Cart.DataSource = carttable;
 ListView_Cart.DataBind();
 Response.Redirect("ShoppingCart.aspx");
}
4

1 回答 1

1

Response.Redirect("ShoppingCart.aspx");这可能是您在方法结束时执行 a 的事实BindCartListView()

我不知道您发布的代码来自哪个页面,但是您可以将值保存在 中Session,或将它们作为查询字符串发送,然后将其设置在后面的ShoppingCart.aspx代码中。

查询字符串伪代码:

Response.Redirect("ShoppingCart.aspx?subtotal=" + subtotal + "&granttotal=" + granttotal);

伪代码后面的ShoppingCart.aspx.cs代码:

// Provided you have these span elements in ShoppingCart.aspx.
span_subtotal.InnerText = Request.QueryString["subtotal"];
span_granttotal.InnerText = Request.QueryString["granttotal"];
于 2012-10-19T21:48:32.527 回答