передача аргументов с обратной передачей на страницу - PullRequest
1 голос
/ 16 октября 2011

iv'e получил страницу aspx с некоторыми пользовательскими элементами управления, каждый из которых содержит флажок.

флажок установлен, когда пользовательский элемент управления добавлен на страницу.флажок установлен на автоматическую отправку сообщений назад

, что мне нужно для того, чтобы при автоматической отправке сообщений назад пользовательский элемент управления исчезал.

прежде всего, как я загружаю свои пользовательские элементы управления: iзагрузите их в виде строк в таблице и присвойте их значениям идентификатора значение сущности, которую они представляют

   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");  
    }

, теперь это работает, но кажется неправильным отсылать и затем перенаправлять снова, чтобы повлиять на удаление из списка наотправлять обратно, но вступает в силу только при следующей загрузке страницы, когда список перезагружается.если бы я мог каким-то образом удалить элемент из списка во время загрузки страницы назад без необходимости перенаправлять снова.

есть идеи, как мне пропустить перенаправление?я подумал о том, чтобы посылать аргументы с обратной передачей, но я не знаю, возможно ли это вообще, потому что тогда я мог бы отправить идентификатор продукта и удалить его из списка до вызова Load_Products.

заранее спасибо, Эран.

1 Ответ

0 голосов
/ 22 октября 2011

Вместо переадресации, почему бы вам просто не вызвать Load_Products снова с обновленным списком продуктов?

...