2013-03-23 7 views
0

У меня появилось окно telerik. Он открывается отлично; однако у меня проблема с закрытием окна. Если я добавлю предупреждение в javascript, alert («# Window») или alert ($ (this) .closest («# Window»)), он отобразит [object Object]. Однако, измените («# Window»). Data («tWindow») или alert ($ (this) .closest («# Window»). Data ('tWindow')) отобразит нуль. Я удалил ссылку jquery и javascript с родительской или дочерней страницы, и это не имело никакого значения. Любая помощь была бы весьма признательна. Смотрите пример кода ниже('#Window'). Data ('tWindow'). Close()

Вот всплывающее окно:

@{Html.Telerik().Window() 
    .Name("Window") 
    .Title("Student Window") 
    .LoadContentFrom(Url.Action("AddReason", "Reason", new { id = reasonID }, Request.Url.Scheme)) 
    .ClientEvents(events => events 
     .OnClose("ClosingWindow") 
     ) 
    .Draggable(false) 
    .Scrollable(false) 
    .Width(800) 
    .Height(600) 
    .Modal(true) 
    .Visible(false) 
    //.Effects(fx => fx 
    // .Zoom() 
    // .Opacity()) 
    .Render(); 
} 

Вот JavaScript:

<script src="@Url.Content("~/Scripts/jquery-1.4.4.js")" type="text/javascript"> 

</script> 
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/spin.min.js")" type="text/javascript"></script> 


function DoOpen(id) { 
     var url = '@Url.Action("AddReason","Reason")'; 
     $.post(url, { id: id }, function (data) { 
      var window = $('#Window').data('tWindow').center(); 
      window.content(data); 
      window.open(); 
     }); 
    } 
//This javascript is in the main page 
//I did an alert. alert($('#Window')) and 
alert($('#Window').data('tWindow')) they both return null 

    function ClosingWindow() { 
     $('#Window').prop("checked", "checked"); 
     $('#Window').data('tWindow').close(); 
     window.location.href = window.location.href; 
    } 

Here is the partial view : 

    @model Student.Models.Reason 
@using Student.Example 

@{ 
    ViewBag.Title = "Add Reason"; 
    Layout = "~/Views/Shared/_PartialReason.cshtml"; 
} 

<script type="text/javascript"> 
    function CloseWindow() { 
//  alert($("#Window").closest('.t-window').data('#tWindow')); 
//  $("#Window").data("tWindow").close(); 
     $('#Window').prop("checked", "checked"); 
     window.location.href = window.location.href; 
    } 

</script> 

@using (Html.BeginForm("AddReason", "Reason", FormMethod.Post)) 
{ 
    @Html.ValidationSummary(true) 
    <fieldset> 
     <div class="editor-field"> 
      @(Html.Telerik().Editor() 
      .Name("EncountersArchive") 
      .HtmlAttributes(new { style = "height:310px;", id = "AddAReason" }) 
      .Encode(true) 
      .Tools(
      tools => tools 
         .Clear() 
         .Bold().Italic().Underline().Strikethrough().Subscript().Superscript().Separator() 
         .FontName().FontSize() 
         .FontColor().BackColor().Separator() 
         .JustifyLeft().JustifyCenter().JustifyRight().JustifyFull().Separator() 
         .InsertUnorderedList().InsertOrderedList().Separator() 
         .Indent().Outdent().Separator() 
      )) 
     </div> 
     <p style="text-align:center"> 

      <input type="submit" value="Reason" id="AddReasonID" onclick="CloseWindow()"/> 
     </p> 
    </fieldset> 
} 

ответ

0

OnClose событие во всплывающем окне была причиной проблемы. События onclose должны использоваться только в том случае, если пользователь захотел сделать что-то еще после закрытия окна. Если целью является просто закрыть окно, управление Telerik автоматически обрабатывает его. В моем случае я просто удаляю событие onclose, и оно работает как шарм.

Смежные вопросы