1

也许我对 Ajax Modal 弹出窗口的理解不正确。我想做的是从服务器检索一些数据,并在用户单击页面上的按钮时将其显示在模式弹出窗口中。以下代码在页面的 aspx 中。

 <asp:Panel ID="pnlDetail" CssClass="modal" runat="server">

             <div class="header">
               Data
            </div>
            <div class="body">
                 <div class="header">
                        <asp:Label ID="lblInput" runat="server"></asp:Label>
                   </div>  
            </div> 


   </asp:Panel>

   <ajaxToolkit:ModalPopupExtender ID="mpeDetail" PopupDragHandleControlID="pnlDetail" PopupControlID="pnlDetail" TargetControlID="hdnDetail"

    BackgroundCssClass="modalBG" CancelControlID="ShowDetailClose" runat="server" />

在页面上按钮的按钮单击事件中,我从服务器检索数据并将值分配给弹出面板内的 lblInput 并调用 mpe.Show.. 但它不显示该值。我假设数据需要在加载 mpe 时出现,但这不是我必须做的。

如果 MPE 无法做到这一点,还有什么替代方案?

4

2 回答 2

0

我正在使用拖动面板扩展器,因为我也遇到了模态弹出窗口的一些问题。但这里有一个模态弹出窗口的可能解决方案:

http://blogs.microsoft.co.il/blogs/gilf/archive/2009/08/14/populating-a-modalpopupextender-dynamically.aspx

于 2011-05-26T18:18:46.507 回答
0

好的,想通了。将上面的面板放在更新面板中。

<asp:UpdatePanel ID="updPnlDetail" runat="server" UpdateMode="Conditional">
        <ContentTemplate>

..... <asp:panel .. > ajax mpe control etc (what I have in the question)..

   </ContentTemplate>
    </asp:UpdatePanel>

然后在按钮点击,调用如下。

UserControl.LoadData(对象数据内容); (用户控件具有弹出数据。它不必是用户控件。在此处将控件与数据绑定)。

updPnlDetail.Update(); mpe.Show();

数据会显示。我猜更新面板的更新方法会刷新。

于 2011-05-27T15:22:02.727 回答