使用回发传递参数到页面

时间:2011-10-15 23:02:02

标签: c# asp.net postback

我有一个带有一些用户控件的aspx页面,所有这些都包含一个复选框。

将用户控件添加到页面时,将选中该复选框。 该复选框设置为自动回发

我需要的是当自动回发发生时,用户控件将会消失。

首先我加载用户控件的方式: 我将它们作为行加载到表中,并将它们的ID值赋予它们所代表的实体的值

   private void Load_Products(List<AppProduct> user_products)
    {
        HtmlTableRow row = null;
        foreach(AppProduct p in user_products)
        {
            row = new HtmlTableRow();
            tbl_products.Rows.Add(row);

            CartProduct prd = (CartProduct)Page.LoadControl("~/UserControls/CartProduct.ascx");

            prd.Title = p.Title;
            prd.Price = p.Price.ToString();
            prd.Pid = p.Pid.ToString();
            prd.ID = p.Pid.ToString();
            prd.State = 2;

            prd.Product_Checked += new EventHandler(prd_Product_Checked);

            HtmlTableCell cell = new HtmlTableCell();
            cell.Controls.Add(prd);
            row.Cells.Add(cell);
        }
    }   

CartProduct UserControl代表AppProduct实体

现在我删除产品(usercontrol)的方法是将其从列表中删除,如下所示:

    void prd_Product_Checked(object sender, EventArgs e)
    {      // this removes the product from the same list that the load products function gets
           ProductChangedEventArgs args = (ProductChangedEventArgs)e;
           cart.RemoveProduct(uid, args.Pid);                        
           Response.Redirect("~/Pages/cart.aspx");  
    }

现在这样可行,但似乎不得不回发然后再次重定向以便影响从列表中删除发生在帖子后面,但会产生影响 只有在下一页加载时才会重新加载列表。 如果我可以在回帖的页面加载期间如何从列表中删除该项目 不必重新指挥。

我有什么想法可以跳过重定向? 我想可能用回发发送参数,但我不知道这是否可能,因为我可以发送产品ID并在调用Load_Products之前将其从列表中删除。

提前谢谢 叶兰。

1 个答案:

答案 0 :(得分:0)

而不是重定向为什么不用再次使用更新的产品列表再次调用Load_Products?