사용자 정의 컨트롤을 사용하여 장바구니 항목 집합을 렌더링하려고합니다. 각 장바구니 항목은 사용자 정의 컨트롤의 단추를 통해 제거 할 수 있습니다. 장바구니 아이템이 제거되면 나는 그것이 제거임을 시각적으로 보여줄 필요가 있습니다. 그러나 장바구니 항목이 페이지를로드하는 동안 존재했기 때문에 페이지가 다시 새로 고쳐질 때까지 남아 있습니다. 내가 한 것은 cartitem을 제거하는 작업이 완료된 후 페이지를 새로 고치는 방법입니다. UserControl을 CartItemControl.ascx.cs사용자 컨트롤 포스트 백
public partial class UserControls_CartItemControl
: System.Web.UI.UserControl
{
public string ItemName { get; set; }
public int CartID { get; set; }
public string Cost { get; set; }
public IDictionary<int, SoftwareComponent> ItemComponents { get; set; }
protected void Page_PreRender(object sender, EventArgs e)
{
SetCartItemControlAttributes();
}
private void SetCartItemControlAttributes()
{
ItemLink.Text = ItemName;
TotalItemCost.Text = Cost;
RemoveCartItem.CommandArgument = CartID.ToString();
if (!ItemComponents.Count.Equals(0))
{
ComponentsLI.Visible = true;
foreach (KeyValuePair<int, ItemComponent> kvp in
ItemComponents)
{
ItemComponentsCheckList.Items.Add(
new ListItem(string.Format("{0} {1}",
kvp.Value.ComponentName,
kvp.Value.ComponentCost.ToString("c")),
kvp.Key.ToString()));
}
}
}
public event EventHandler CartItemRemoved;
protected void RemoveCartItem_Command(object sender, CommandEventArgs e)
{
int itemID;
if (int.TryParse(e.CommandArgument.ToString(), out itemID))
{
Profile.Cart.RemoveCartItem(itemID);
CartItemRemoved(sender, e);
Parent.Controls.Remove(this);
}
}
}
선택한 대답을 반영하도록 개정 됨 – ahsteele