我有一个ASPxPopupControl和一个ASPxGridView。 在这个PopupControl中,我有自己的usercontrol,其中包含一个用于编辑人员信息的表单。 GridView内部是一个包含不同人员的列表。 当我在gridview中选择不同的人时,我希望popupcontrol的内容更新为所选用户的人员信息,以便我可以编辑它。
我的问题是;我无法让这个工作,我尝试使用各种触发器放置更新面板或强制更新面板更新。但它仍然无效。
PopupControl:
<dx:ASPxPopupControl ID="pcVolgnummerToevoegen" runat="server" AllowDragging="True" ClientInstanceName="popup_toevoegen" CloseAction="CloseButton" LoadingPanelText="Laden&hellip;" Height="700" Width="700" Modal="True" PopupHorizontalAlign="WindowCenter" PopupVerticalAlign="WindowCenter">
<ContentCollection>
<dx:PopupControlContentControl ID="pcVolgnummerToevoegenContent" runat="server">
<asp:UpdatePanel ID="upnlToevoegen" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<uc:GegevensControl ID="ucGegevensControl_Toevoegen" runat="server" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="KlantVolgnummerGrid" />
</Triggers>
</asp:UpdatePanel>
</dx:PopupControlContentControl>
</ContentCollection>
</dx:ASPxPopupControl>
DataView Selection_Changed:
protected void KlantVolgnummerGrid_SelectionChanged(object sender, EventArgs e)
{
Session["Person_Id"] = KlantVolgnummerGrid.GetSelectedFieldValues("ID");
}
弹出窗口中的usercontrol的Page_Load
protected void Page_Load(object sender, EventArgs e)
{
Person varPerson = PersonControllerClient.GetPerson(Session["Person_Id"]);
....Code that fills the form
}
我已经检查了GridView的SelectionChanged事件,它会触发。但更新面板不会更新。 刷新页面后,我选择的人将显示在弹出窗口中。
无论如何,我可以更新弹出窗口以显示合适的人,而不必每次选择其他人时都刷新页面吗?
答案 0 :(得分:4)
禁用ASPxGridView回调模式以使用UpdatePanel回调强制网格。
只需将ASPxGridView.EnableCallBack http://documentation.devexpress.com/#AspNet/DevExpressWebASPxGridViewASPxGridView_EnableCallBackstopic属性设置为“false”。
答案 1 :(得分:0)
移除触发器并在更新面板上添加ChildrenAsTriggers="false"
<asp:UpdatePanel ID="upnlToevoegen" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="false">
<ContentTemplate>
<uc:GegevensControl ID="ucGegevensControl_Toevoegen" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
代码隐藏:
protected void KlantVolgnummerGrid_SelectionChanged(object sender, EventArgs e)
{
int id = KlantVolgnummerGrid.GetSelectedFieldValues("ID");
Person varPerson = PersonControllerClient.GetPerson(id);
....Code that fills the form
upnlToevoegen.Update();
}