2016-09-27 2 views
0

Я открываю всплывающее окно с ниже кода со стороны сервераОбновить главную страницу на закрытие всплывающего окна

var url = string.Format("../UserPopup.aspx?user_Ids={0}&fromDate={1}&toDate={2}", user_Ids, fromDate, toDate); 
string script = string.Format("function f(){{openDialog('{0}', {1}, {2}, {3});Sys.Application.remove_load(f);}}Sys.Application.add_load(f);", 
            url, 
            "true",  
            1000, 
            300); 
ScriptManager.RegisterStartupScript(Page, Page.GetType(), "someKey", script, true) 

Ниже приведен код для закрытия всплывающего окна с помощью JavaScript. Код ниже не работает.

function GetRadWindow() { 
      var oWindow = null; 
      if (window.radWindow) 
       oWindow = window.radWindow; 
      else if (window.frameElement.radWindow) 
       oWindow = window.frameElement.radWindow; 
      return oWindow; 
     } 

function Close() { 
var result = window.confirm("Are you sure you want to close the window!"); 
if (result == true) { 
    var oWindow = GetRadWindow(); 
    oWindow.argument = null; 
    oWindow.onunload = refreshParent; 
    oWindow.close(); 
    return false; 
    } 
} 

function refreshParent() { 
    window.opener.location.reload(); 
} 

window.opener.location.reload(); не работает вообще здесь. Не знаю причины.

Как обновить родительскую страницу при закрытии всплывающего окна?

+0

Значит, вы хотите сказать, что вы не можете закрыть дочернее окно и не можете правильно обновить родителя? –

+0

Я могу закрыть окно, если я удалю 'oWindow.onunload = refreshParent;' из 'Close'. Мне нужно только обновить страницу. –

ответ

1

Используйте OnClientClose событие, что-то вроде:

На главной странице

 <telerik:RadWindow ID="RadWindow1" runat="server" OnClientClose="OnClientClose"></telerik:RadWindow> 
     <script> 
      function OnClientClose(sender, args) { 
       if (args.get_argument()) { //make the condition more complex, depending on the argument you pass 
        window.location.href = window.location.href; 
       } 
      } 
     </script> 

На странице содержимого

  function Close() { 
       var result = window.confirm("Are you sure you want to close the window!"); 
       if (result == true) { 
        var oWindow = GetRadWindow(); 
        oWindow.close(someArugment); //pass the argument here. Define it first, of course 
       } 
      } 

Эта демонстрационная имеет рабочий пример, как скважина http://demos.telerik.com/aspnet-ajax/controls/examples/integration/gridandwindow/defaultcs.aspx?product=window

-1

вы можете использовать частичную модель представления для этого, сначала добавьте ниже код на свой частичный вид и «MyModel» в главном окне,

<div class="modal-header"> 
 
      <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> 
 
      <h4 class="modal-title" id="myModalLabel">Event Information</h4> 
 
     </div> 
 

 
<div id='myModal' class='modal'> 
 
     <div class="modal-dialog"> 
 
      <div class="modal-content"> 
 
       <div id='myModalContent'></div> 
 
      </div> 
 
     </div> 
 
     </div>

теперь вот ваша кнопка закрытия Javascript файл, в котором просто скрыть контроль '' MyModel

$(function() { 
 
     
 

 
     $("#closbtn").click(function() { 
 
      $('#myModal').modal('hide'); 
 
     }); 
 
    });

+0

Оба кода вызывают ошибку, и я не могу использовать ваш код. Это радикальное изменение моего кода. Для этого я использую Telerik RadWindow. –

+0

Здесь я использую RadWindow для этого. –

+0

Открываю всплывающее окно со стороны сервера. Из-за этого я не могу использовать ваш код. –