매우 유명한 문제인 것처럼 보였습니다. 내 updatepanel은 비동기 포스트 백 대신 전체 포스트 백을 실행합니다.UpdatePanel은 asyncpostback 대신 전체 포스트 백을 제공합니다.
HTML :
일반적인 솔루션은 다음 코드의 ... 동적 내가 수행 한 ID를 추가,하지만 난 여전히 대신 내 비동기 포스트 백의 전체 포스트 백을받을 모든 컨트롤을 제공하는 것입니다 내가 실제로 AsyncPostBackTr를 추가, 그래서 ImageButton imgBtn = new ImageButton();
imgBtn.ID = "itemBtn";
imgBtn.Width = Unit.Pixel(30);
imgBtn.ImageUrl = "~/Images/Game/Items/" + myItem.ItemImageUrl;
ContextMenu menu = new ContextMenu();
menu.BoundControls.Add(imgBtn);
menu.ItemCommand += new CommandEventHandler(menu_ItemCommand);
menu.AutoHide = true;
menu.RolloverColor = Color.Gray;
menu.ID = "MenuMenu";
Panel panel = (Panel)(e.Item.FindControl("ItemPanel"));
panel.Controls.Add(imgBtn);
panel.Controls.Add(menu);
AsyncPostBackTrigger trig = new AsyncPostBackTrigger();
trig.ControlID = menu.UniqueID;
trig.EventName = "ItemCommand";
ItemsUpdatePanel.Triggers.Add(trig);
:
<asp:UpdatePanel ID="ItemsUpdatePanel" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="False">
<Triggers>
</Triggers>
<ContentTemplate>
<asp:ListView ID="PlayerItems" runat="server" GroupItemCount="5"
onitemdatabound="PlayerItems_ItemDataBound">
<LayoutTemplate>
... Listview stuff ...
</asp:ListView>
</ContentTemplate>
</asp:UpdatePanel>
흥미로운 부분은 다음과 같다 뒤에 C# 코드 (방법 PlayerItems_ItemDataBound)이며, 메뉴에 나타나면 ItemCommand 이벤트를 등록해야합니다. 이 컨텍스트 메뉴에서 항목을 클릭하면 어떤 일이 일어나는지, 전체 포스트 백이 발생합니다.
저는 ChildrenAsTriggers 속성을 사용하지 않고도 놀려고했습니다. 또한 AsyncPostBackTrigger 코드를 위아래로 움직였습니다.
미리 감사드립니다. 라스 AsyncPostBackTrigger 문서에서
Urh .. 내가 원하는 것은 아닙니다.하지만 그 방법은 끝났습니다! 감사합니다. 정말 고마워! :-) –
훌륭한 정보! =) –
대단히 고맙습니다. UpdatePanel1.Update(); – GPMorgan