Webix - Поддержка режима покоя - Datatable - Установка столбца ID для операции CRUD

Я следую этим инструкциям и адаптирую этот пример. Проблема в том, что мои данные ID не называются ID. Поэтому, когда я попытался изменить данные, ID, отправленный в мой REST API, оказался каким-то сумасшедшим числом.

Есть ли способ настроить, какой столбец или поле с данными из моего JSON будет использоваться в качестве идентификатора?
ИЛИ
Нужно ли мне изменить имя, возвращаемое моим REST API, и как это лучше всего сделать без изменения структуры базы данных?

Вывод JSON:

[
    {
        "nu_unidade": "sample string 2", 
        "nome": "sample string 4", 
    },{
        "nu_unidade": "sample string 2", 
        "nome": "sample string 4", 
    },{
        "nu_unidade": "sample string 2", 
        "nome": "sample string 4",
    }
] 

Сетевая модель ASP:

namespace Site.Models {
    using System;
    using System.Collections.Generic;
    public partial class Unidade {
        public string nu_unidade { get; set; }
        public string nome { get; set; }
    }
}

Использование:

  • Вебикс 4.2
  • .NET Framework 4.0
  • Веб-API 1.0
  • EF 5.0

person Elathan    schedule 30.03.2017    source источник
comment
как выглядит ваша модель?   -  person David Lee    schedule 30.03.2017
comment
Вывод JSON выглядит так: [ { "nu_unidade": "sample string 2", "nome": "sample string 4", }, { "nu_unidade": "sample string 2", "nome": "sample string 4", }, { "nu_unidade": "sample string 2", "nome": "sample string 4", } ] Моя модель ASP NET: namespace Site.Models { using System; using System.Collections.Generic; public partial class Unidade { public string nu_unidade { get; set; } public string nome { get; set; } } }   -  person Elathan    schedule 30.03.2017
comment
Вы должны включить это в свой вопрос в качестве редактирования. Обязательно отформатируйте как код.   -  person David Lee    schedule 30.03.2017


Ответы (1)


Я почти уверен, что Webix не может работать без поля «id» (он автоматически создает поле со случайным большим числом). Если ваш API не может его отправить, попробуйте сопоставить данные в таблице данных webix: http://docs.webix.com/datatable__data_mapping.html

columns:[
    { 
        id:"id",  
        map:"#nu_unidade#", 
        header:"Id" 
    }
],

Или вы можете принудительно указать идентификатор при инициализации данных:

scheme: {
   $init:function(obj){
       obj.id = obj.nu_unidade;
     } 
}
person fabien-michel    schedule 31.03.2017
comment
Попробовал ваше второе предложение (Инициализация данных) и работал по назначению. - person Elathan; 31.03.2017
comment
Еще одна вещь: использование любого из вышеперечисленных способов приводит к нарушению функциональности сортировки таблицы данных: Uncaught TypeError: Cannot read property 'id' of undefined - person Elathan; 31.03.2017