来自ModalPopup的PostingBack,但保持可见?

时间:2009-06-23 19:41:17

标签: c# ajax gridview postback

我有一个ModalPopup,它将包含一个gridview和4个字段,用于将项目输入gridview本身。

是否可以在保持模态打开的同时回发到服务器并更新gridview?

当你提交字段并且回发发生时,模态关闭有没有人以前做过这个?有人提到了使用jQuery的解决方案,但这是很久以前的事了。

5 个答案:

答案 0 :(得分:3)

在UpdatePanel中包装弹出窗口的内容(即不是弹出窗口本身!)对我有用。

我的弹出式内容是一个搜索面板,其中包含可排序/可分页的结果网格。 UpdatePanel给了我所需的确切行为,没有额外的代码。

感谢Patel Shailesh的想法。

<asp:Panel runat="server" ID="PopupPanel" Height="650" Width="900" Style="display: none">
    <asp:UpdatePanel runat="server" ID="UpdatePanel1">
        <ContentTemplate>
            <!-- popup content -->
        </ContentTemplate>
    </asp:UpdatePanel>
</asp:Panel>

<ajax:ModalPopupExtender runat="server" ID="PopupExtender" PopupControlID="PopupPanel"  
    TargetControlID="PopupButton" />
<asp:Button runat="server" ID="PopupButton" Text="Popup" />

答案 1 :(得分:1)

这样做的关键是使用某种风格的AJAX - Microsoft.Ajax或jQuery Ajax。如果UpdatePanel不起作用,那么我建议使用jQuery使用AJAX提交回服务器。这将涉及创建WebMethod以接受服务器端的AJAX帖子,并使用jQuery检测客户端以发送请求/接收响应。如果没有看到你的HTML,就很难做到非常具体。

基本理念:

 $(function() {
    $('#modalSubmitButton').click( function() {
       $.ajax({
           url: 'path-to-your-web-method',
           dataType: 'json',  // or html, xml, ...
           data: function() {
               var values = {};
               values['field1'] = $('#field1ID').val();
               ...
               values['field4'] = $('#field4ID').val();
               return values;
           },
           success: function(data,status) {
              ... update page based on returned information...
           }
           ... error handling, etc. ...
       });
       return false; // stop any default action from the button clicked
    });
 });

答案 2 :(得分:0)

我不确定这是否可行,但是尝试将modalpopup中的任何内容放入UpdatePanel

如果这部作品在您发布后不讨厌我,我也讨厌更新面板

答案 3 :(得分:0)

一种丑陋的选择是在首先显示模态弹出窗口并设置ViewState [“ModelPopupOn”] = true时强制回发;然后在关闭弹出窗口时检查页面加载并最终再次回发并将其设置为false /从viewstate中删除它。

(这些问题是我讨厌ajax工具包的原因)

答案 4 :(得分:0)

我正在尝试使用modalpopupextender,并找到一个丑陋的解决方案。 如果模态面板有一个使回发发生的按钮

<asp:Panel runat="server" ID="PopupPanel" Height="650" Width="900" Style="display: none">
    <asp:Button ID="OkButton" runat="server" Text="OK" OnClick="OkBtn_Click"  />
</asp:Panel>

如果代码隐藏中的OkBtn_Click调用:

System.Web.HttpContext.Current.Response.Write("<script></script>");

然后modalpopupextender没有关闭。 这件事发生在这个家伙身上: http://forums.asp.net/t/1591860.aspx