【问题标题】:One Column Value remain unchanged in kendo grid drag and drop一列值在剑道网格拖放中保持不变
【发布时间】:2014-01-13 10:01:01
【问题描述】:

我是剑道 UI 的新手,但是我如何设法通过拖放功能渲染剑道网格,用户可以在其中拖放行。在我的情况下,我有三列 id、name、sequence

所以我需要保持序列列数据不变,而 id 和 name 数据在拖放一行时发生变化。

Ex id=1 Name=David Sequnce=0
   id=2 Name=Mark  Sequnce=1

现在我将第1行拖到第2行,而序列列的数据保持不变,这样新数据,

Ex id=2 Name=Mark   Sequnce=0
   id=1 Name=David  Sequnce=1

就我而言,每一行都在发生变化。我需要实施这个解决方案。

谁能帮帮我。

干杯,

陈达卡

【问题讨论】:

标签: javascript jquery html kendo-ui kendo-grid


【解决方案1】:

试试这个,

脚本

<script type="text/javascript">

    $(document).ready(function () {
    var data = [
{ id: 1, text: "David ", Sequnce: 0 },
{ id: 2, text: "Mark  ", Sequnce: 1 }
]

    var dataSource = new kendo.data.DataSource({
        data: data,
        schema: {
            model: {
                id: "id",
                fields: {
                    id: { type: "number" },
                    text: { type: "string" },
                    Sequnce: { type: "number" }
                }
            }
        }
    });

    var grid = $("#grid").kendoGrid({
        dataSource: dataSource,
        scrollable: false,
        columns: ["id", "text", "Sequnce"]
    }).data("kendoGrid");

    grid.table.kendoDraggable({
        filter: "tbody > tr",
        group: "gridGroup",
        hint: function (e) {
            return $('<div class="k-grid k-widget"><table><tbody><tr>' + e.html() + '</tr></tbody></table></div>');
        }
    });

    grid.table/*.find("tbody > tr")*/.kendoDropTarget({
        group: "gridGroup",
        drop: function (e) {
            var target = dataSource.get($(e.draggable.currentTarget).data("id"));
        dest = $(e.target);

            if (dest.is("th")) {
                return;
            }
            dest = dataSource.get(dest.parent().data("id"));

            //not on same item
            if (target.get("id") !== dest.get("id")) {
                //reorder the items
                var tmp = target.get("Sequnce");
                target.set("Sequnce", dest.get("Sequnce"));
                dest.set("Sequnce", tmp);

                dataSource.sort({ field: "Sequnce", dir: "asc" });
            }
        }
    });     

    });

</script>

查看

<div id="grid">
</div>

演示:http://jsfiddle.net/nmB69/710/

【讨论】:

  • 伟大的 Jaimin 非常感谢您的解决方案对我有用 ;-)
猜你喜欢
  • 1970-01-01
  • 2015-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多