2009-06-23 33 views
1

我有一个ModalPopup,它将包含一个GridView和4个字段以将项目输入到GridView本身。PostingBack从ModalPopup,但保持可见?

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

当您提交字段和回发发生模式关闭有人做过这之前?有人提到了使用jQuery的解决方案,但这很久以前。

+0

你正在使用哪种ModalPopup?你能发布链接吗? – Merritt 2009-06-23 19:50:44

回答

1

放置任何的modalpopup内的UpdatePanel中的这样做的关键是使用某种味道的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 
    }); 
}); 
0

我不知道这是否会工作,但尽力

请你放开后这个作品不恨我,我恨的UpdatePanel太

+0

我试过这个,没有运气 – jr3 2009-06-23 19:45:25

0

一类难看选项是表示在第一位置的模式弹出并设置的ViewState [“ModelPopupOn”] =真时强制回传;然后检查页面加载并最终回发并将其设置为false /关闭弹出窗口时将其从viewstate中删除。

(这些类型的问题是,为什么我讨厌的Ajax工具包)

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" /> 
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