KendoGrid не отображается в KendoWindow

Я пытаюсь показать сетку в окне kendoWindow, но она не отображается. Это мой HTML

<div id="ShowPrompts">
    <div id="PromptsGrid">

    </div>
</div>

У меня все это происходит, когда строка щелкается в detailGrid, он передает GroupID и OptionID, это функция

function GetThePromptsData(gid, oid) {
    $.ajax({
        type: "GET",
        url: URLParams.PromptsData + "?globalgroupID=" + gid + "&optionid=" + oid,
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        success: function (data, textStatus, jqXHR) {
            CreatePromptsGrid(data);
            ShowPromptsPopUp();
        }
    });
}

и это функция ShowPromptsPopUp()

function ShowPromptsPopUp() {
    $("#ShowPrompts").kendoWindow({
        width: "300px",
        height: "300px",
        title: "Option Prompts",
        visible: false,
        modal: true,
        actions: [
            "Close"
        ]
    }).data("kendoWindow").center().open();
}

Я проверил, и есть данные в JsonResult, но не хочет отображаться в окне.

РЕДАКТИРОВАТЬ

Я запустил это снова, и окно не будет отображаться при вызове, как я его показываю, поэтому я удалил ShowPromptsPopUp() из GetThePromptsData() и поместил его в событие изменения detailGrid, окно появляется, но по-прежнему нет сетки в окно.

В событии изменения detailGrid порядок таков:

GetThePromptsData(globalID, optionID);
ShowPromptsPopUp();

РЕДАКТИРОВАТЬ 2

var promptGrid,
CreatePromptsGrid = function (promptsData) {
    promptGrid = $("#PromptsGrid").kendoGrid({
        dataSource: {
            promptsData
        },
        schema: {
            model: {
                id: "PromptID",
            }
        },
        columns: [
            { field: "Question", title: "Question" },
            { field: "DefaultAnswer", title: "Answer" }
        ],
        change: function (e) {

        },
        scrollable: true,
        pageable: false,
        selectable: "row"
    }).data("KendoGrid");
}

1 ответ

I have modified the code little and its working. please check:
function GetThePromptsData() {
   /* $.ajax({
        type: "GET",
        url: "http://jsonplaceholder.typicode.com/posts",
        dataType: "jsonp",
        contentType: "application/json; charset=utf-8",
        success: function (data, textStatus, jqXHR) {

        }
    });*/
    data =[ {
    PromptID:1,
    Question:"test 1",
    DefaultAnswer:"test answer 1" 

    },
    {
    PromptID:2,
    Question:"test 2",
    DefaultAnswer:"test answer 2"    

    },
    ]
     CreatePromptsGrid(data);
      ShowPromptsPopUp();
}

function ShowPromptsPopUp() {
    $("#ShowPrompts").kendoWindow({
        width: "300px",
        height: "300px",
        title: "Option Prompts",
        visible: false,
        modal: true,
        actions: [
            "Close"
        ]
    }).data("kendoWindow").center().open();
}

var promptGrid,
CreatePromptsGrid = function (promptsData) {
    promptGrid = $("#PromptsGrid").kendoGrid({
        dataSource: {
            data:promptsData
        },
        schema: {
            model: {
                id: "PromptID",
            }
        },
        columns: [
            { field: "Question", title: "Question" },
            { field: "DefaultAnswer", title: "Answer" }
        ],
        change: function (e) {

        },
        scrollable: true,
        pageable: false,
        selectable: "row"
    }).data("KendoGrid");
}

GetThePromptsData();
Другие вопросы по тегам