2013-02-10 85 views
1

我有一个复选框的页面,用户应该检查并弹出一个窗口将显示。弹出的窗口显示正确;然而,我一直无法让窗户关闭。正如你在下面看到的,只要用户点击提交,就会调用closewindow函数。该消息显示,但窗口从不关闭。请参阅以下示例代码。Telerik Control弹出窗口拒绝关闭

//This is the content of the partial page that is being load in the popped up window. 
@using (Html.BeginForm("StudentArchive", "Arvhive", FormMethod.Post, new { onsubmit = "CloseWindow()" })) 
{ 

    @Html.HiddenFor(item => item.StudentID) 
<table> 
    <tr> 
     <th> 
      Student Archive Reason 
     </th> 
    </tr> 
    <tr> 
     <td> 
      @Html.TextAreaFor(item => item.ArchiveReason) 
     </td> 
    </tr> 
</table> 

<input type="submit" value="Submit" name="btnSubmit" id="ArchiveReasonSubmit" onclick="CloseWindow();" /> 
} 


     <script type="text/javascript"> 
      function CloseWindow() { 
       alert('I am closing window in reason for archive'); 
       $("#Window").data("tWindow").close(); 
//    $('#Window').prop("checked", "checked"); 
//    window.location.href = window.location.href; 
      } 
    </script> 



//this script is in a studentDetails page which is where the checkbox that would open the window below located. 



<script type="text/javascript"> 
    function chkArchive() { 
     var s = document.getElementById('archiveCheckBox').checked; 
     if (s == true) { 
      OpenWindow(this); 
     } 

     if (s == false) { 
      alert('checkbox is unchecked'); 
     } 
    } 
</script> 


<script type="text/javascript"> 
     function OpenWindow(e) { 
      var checkbox = document.getElementById('archiveCheckBox').value; 
      if (checkbox == "false") { 
       alert('It is false.'); 
      } else if (checkbox == "true") { 
       $('#Window').data('tWindow').center().open(); 
      } 
     } 
</script> 

    <script type="text/javascript"> 
     function ClosingWindow() { 
      $('#Window').prop("checked", "checked"); 
      window.location.href = window.location.href; 
     } 
    </script> 


    @{Html.Telerik().Window() 
    .Name("Window") 
    .Visible(true) 
    .Title("Reason for Archives") 
    .Modal(true) 
    .Height(600) 
    .Draggable(true) 
    .Visible(false) //I could have added a variable set the default value to false to hide the window. However, I am not sure how to change it back to 
        //yes after the user checks the checkbox for the first time. The only event that fire when a user check the checkbox is the javascript event to check the state 
        // of the checkbox and open the window. 
    .Width(800) 
    .ClientEvents(events => events.OnClose("ClosingWindow")) 
    .LoadContentFrom(Url.Action("StudentArchive", "Student", new { StudentID = @ViewData["StudentID"] }, Request.Url.Scheme)) 
    .HtmlAttributes(new { onsubmit = "CloseWindow()" }) 
    .Render(); 
    } 
+0

首先链接,你在两个地方使用closewindow()函数,尝试删除one.second检查你得到JavaScript错误。 – sathishkumar 2013-02-10 17:12:45

+0

jquery库被引用两次。我从部分视图页面中删除它,查询工作正常。 http://www.telerik.com/community/forums/aspnet-mvc/window/close-modal-window-from-within-the-window.aspx – Gagouche 2013-02-10 20:51:45

回答