Подсетка в JSGrid, дубликат реестра при отмене редактирования - PullRequest
0 голосов
/ 15 февраля 2019

Подсетка в моей сетке.Это работает для меня наполовину, потому что когда я собираюсь редактировать и отменяю издание, он дублирует реестр.

Мне также нужно отредактировать элемент управления, отредактировать всю запись, а не только одну сетку или другую.

Это базовый пример, но это часть проблемы, с которой я столкнулся с JSGrid, и я не могу двигаться вперед.Я просто нахожу документацию по этому делу.

http://jsfiddle.net/rnxuscga/

<script type="text/javascript">
    var data = window.dt = [
        {
            "Name": "param 1",
            "Pin": "a pin",
            "Conditions": [
                { Name: "condition1", Condition: "123", Typical: "a typical", Unit: "V" },
                { Name: "condition2", Condition: "456", Typical: "a typical", Unit: "V" }
            ]
        }
    ];

    $("#jsGrid").jsGrid({
        width: "100%",
        height: "400",

        inserting: true,
        editing: true,
        autoload: true,

        controller: {
            loadData: function () {
                return data;
            }
        },

        fields: [
            { name: "Name", type: "text", width: 100 },
            { name: "Pin", type: "text", width: 100 },
            {
                name: "Conditions", width: 350, itemTemplate: function (value, item) {
                    var $nestedGrid = $("<div>");
                    var $nestedGridPPial = $("<div>");

                    $nestedGrid.click(function (e) {
                        e.stopPropagation();
                    });

                    $nestedGridPPial.jsGrid({
                        width: 350,
                        height: "auto",
                        inserting: false,
                        editing: true,
                        data: [item],
                        fields: [
                            { name: "Pin", width: 200 }
                        ],
                        rowClick: function (args) {
                            if (this.editing) {
                                this.editItem($(args.event.target).closest("tr"));
                                args.event.stopPropagation();
                            }
                        }
                    });

                    $nestedGrid.jsGrid({
                        width: 350,
                        height: "auto",
                        inserting: false,
                        editing: true,
                        data: item.Conditions,
                        fields: [
                            { name: "Name", width: 200 },
                            { name: "Typical", width: 100 },
                            { name: "Unit" }
                        ],
                        rowClick: function (args) {
                            if (this.editing) {
                                this.editItem($(args.event.target).closest("tr"));
                                args.event.stopPropagation();
                            }
                        }
                    });
                    return $nestedGridPPial.append($nestedGrid);
                }
            },
            { type: "control" }
        ]
    });
</script>

Решение:

<script type="text/javascript">

    function prueba(valor) {

        //Search for ID...hidden label
        //var valor = data.filter(function (perita) {return  data[0].Pin == valorA });

        var inyect = data.push(data[0].Pin = valor);

        //$("#jsGrid").jsGrid("refresh");

        return valor;
    }

    var data = window.dt = [
        {
            "Name": "param 1",
            "Pin": "a pin",
            "Conditions": [
                { Name: "condition1", Condition: "123", Typical: "a typical", Unit: "V", Pin: "a pin" },
                { Name: "condition2", Condition: "456", Typical: "a typical", Unit: "V" }
            ]
        }
    ];

    $("#jsGrid").jsGrid({
        width: "100%",
        height: "400",

        inserting: true,
        editing: true,
        autoload: true,

        controller: {
            loadData: function () {
                return data;
            }
        },

        fields: [
            { name: "Name", type: "text", width: 100 },
            { name: "Pin", type: "text", width: 100 },
            {
                name: "Conditions", width: 350, itemTemplate: function (value, item) {
                    var $nestedGrid = $("<div>");
                    var $nestedGridPPial = $("<td class='jsgrid-cell' style='width: 100px;'><input id='pinwapo' onChange='prueba(this.value);' style='border:0px' type='text' name='" + item.Pin + "' value='" + item.Pin + "'></td>");

                    //$nestedGridPPial.click(function (e) {
                    //    e.stopPropagation();
                    //});

                    $nestedGrid.jsGrid({
                        width: 350,
                        height: "auto",
                        inserting: false,
                        editing: true,
                        data: item.Conditions,
                        fields: [
                            { name: "Name", width: 200 },
                            { name: "Typical", width: 100 },
                            { name: "Unit" }
                        ],
                        rowClick: function (args) {
                            if (this.editing) {
                                this.editItem($(args.event.target).closest("tr"));
                                args.event.stopPropagation();
                            }
                        }
                    });


                    return $nestedGridPPial.append($nestedGrid);
                }
            },
            { type: "control" }
        ]
    });
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...