【问题标题】:Loading data from a kendo grid into a kendo window将数据从剑道网格加载到剑道窗口中
【发布时间】:2017-03-21 17:01:57
【问题描述】:

grid 使用自定义命令打开带有详细数据的剑道窗口。就像这里描述的那样:

http://demos.telerik.com/kendo-ui/grid/custom-command

我通过 php 脚本 f.e. 将网格的数据加载为 json。员工.php。

在示例中,通过单击“查看详细信息”,窗口会从同一数据源加载数据。

我需要的是从另一个 php/json 文件加载详细数据。我发现它应该与“刷新”方法一起工作,但我没有让它工作。

谁能帮帮我?

更新

感谢@Karthikeyan,我的代码现在看起来像这样:

        <script>
... function showDetails(e) {
    e.preventDefault();
    var dataItem = this.dataItem($(e.currentTarget).closest("tr"));
    var dataItemID = dataItem.AK_ID;
    $.getJSON('data/akDetail.php?ak=' + dataItemID + '', function (data) {
        wnd.content(detailsTemplate(data));
        wnd.center().open();
    });
}
</script>
<script type="text/x-kendo-template" id="template">
<div id="details-container">
    <h2>#= title_dataitem #</h2>
</div>
</script>

剑道窗口未打开,我在 chrome 控制台中收到错误:“未捕获的 ReferenceError: title_dataitem 未定义”

【问题讨论】:

    标签: kendo-ui


    【解决方案1】:

    在演示网格中,wnd.content(detailsTemplate(dataItem)); 行将模板与当前行的数据绑定。你可以改为这样做

    function showDetails(e) {
        e.preventDefault();
        var dataItem = this.dataItem($(e.currentTarget).closest("tr"));
        $.getJSON('/dataSource.php', { param1: dataItem.param1, param2: dataItem.param2 }, function (data) {
            wnd.content(renderTemplate(data));
            wnd.center().open();
        });
    }
    

    renderTemplate 方法可以使用从服务器接收到的数据生成 HTML 标记,并将作为内容转储到窗口内。

    更新: renderTemplate 方法可以是一个 kendo 模板,它需要来自 akDetail.php 调用的数据,也可以是一个自定义实现,它返回可用作模式窗口内容的 HTML 标记。例如,

    function renderTemplate(dataItem) {
        var markup = $('<div id="details-container"> ' +
                            '<h2 class="firstName"></h2> ' +
                            '<em class="title"></em> ' +
                            '<dl> ' +
                                '<dt class="city"></dt> ' +
                                '<dt class="dob"></dt> ' +
                            '</dl> ' +
                        '</div>');
        markup.find('h2.firstName').html(dataItem.firstName);
        markup.find('em.title').html(dataItem.title);
        markup.find('dt.city').html(dataItem.city);
        markup.find('dt.dob').html(kendo.toString(dataItem.dob, "MM/dd/yyyy"));
    }
    

    【讨论】:

    • 谢谢,renderTemplate 方法是什么?在 kendo ui 文档中找不到它,或者它是否相同:'detailsTemplate = kendo.template($("#template").html());'
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多