Проблем с производителността с частични изгледи

Имам изглед с много неща, сред тях е това:

@Html.Partial("AddWindow")
@Html.Partial("EditWindow")

Всеки от тези частични изгледи съдържа прозорец на Kendo, чието съдържание се зарежда чрез Ajax.

Kendo Windows във всяка част се отварят чрез извикване на бутон, но това, което всъщност се случва е, че те се зареждат веднага щом страницата бъде достъпна. Просто искам да се зареждат, когато щракна върху тези бутони.

Без тези два реда код, CSS анимациите бяха плавни в цялата страница. Сега те прекъсват за секунда за всяко зареждане на Ajax (опитах се да премахна един от частиците и се разкрива само един прекъсване, а липсата на части означава изобщо липса на прекъсване). Прекъсванията са невидими, когато прозорците наистина са отворени, но при влизане в страницата CSS анимациите се прекъсват два пъти, по една за всяко зареждане на Ajax. След това всичко е наред.

function openAdd() {
    $("#addWindow").data("kendoWindow").center().open();
}

Мислех си, че вътре в горната функция трябва да има нещо, което не само отваря кендо прозореца, но също така зарежда частичното в изгледа.

Някаква помощ?


person chiapa    schedule 13.11.2014    source източник
comment
поставете кода на един от вашите изгледи, за да го промените вместо вас   -  person Monah    schedule 13.11.2014


Отговори (1)


ето какво можете да направите

@(Html.Kendo().Window().Name("addWindow")
    .Visible(false)
    .Modal(true)
    .Draggable(true)
    .Width(450)
    .Height(400)
)


<script type="text/javascript">
 function openAdd() {
    var window = $("#addWindow").getKendoWindow();
    window.refresh({
         url: '@Url.Action("Action", "Controller")',
    });
    window.title('Title');
    window.center().open();
}
</script>

надявам се това да ви помогне

person Monah    schedule 13.11.2014
comment
Благодаря ви, ще опитам това скоро и ще се свържа с вас. Между другото, във вашия код има допълнителна запетая след '@Url.Action("Action", "Controller")': премахнете я - person chiapa; 13.11.2014
comment
ако искате помощ за това как ще предадете идентификатора на прозореца за редактиране, попитайте - person Monah; 13.11.2014
comment
Няма нужда от това. Това не работи, тъй като прекъсва реда за опресняване: прозорецът все още не съществува, съществува само в частичния изглед, който не е зареден първоначално - person chiapa; 13.11.2014
comment
поставете прозореца извън частичния изглед и той може да бъде достъпен от различен изглед (Добавяне, Редактиране) - person Monah; 13.11.2014
comment
Да, сигурен съм, че ще свърши работа, но исках прозорецът да е вътре в частичен изглед, за да го използвам повторно. По този начин ще трябва да поставя прозорци във всеки изглед вместо просто частично извикване. Знаете ли как? - person chiapa; 13.11.2014
comment
след това конструирайте прозореца в javascript, преди да опитате да го заредите - person Monah; 13.11.2014
comment
въпрос: къде са бутоните, които ще задействат прозореца? вътре в частичния изглед или отвън? - person Monah; 13.11.2014
comment
Бутоните са извън частичния изглед, разбира се. Частичният изглед съдържа единствения прозорец за кендо. - person chiapa; 13.11.2014