2015-10-27 3 views
0

Я использую удивительную библиотеку пользовательского интерфейса JavaScript: w2ui. Я изучаю, как работает виджет Grid.w2ui Сетка с составной базой данных базы данных

Каждая строка Сетка идентифицируется с использованием уникального целочисленного идентификатора (recid). Если ваша база данных имеет целое число в качестве первичного ключа, это идеально, вы можете использовать этот ключ, например, recid. Но в моей таблице базы данных есть составной первичный ключ, комбинация 4 столбца.

Сначала я подумал о решении: использовать хэш-функцию для генерирования целого значения, используя значения 4 колонка:

hash(idA, idB, idC, idD) = recid 

Пример JSON, возвращаемый сервер:

records: [ 
    { 
     "recid": 565587, 
     "key": { 
     "idA": "01", 
     "idB": "01", 
     "idC": "1981", 
     "idD": "111" 
     }, 
     "value": 1000 
    } 
] 

recid рассчитывается на стороне сервера и используется на стороне клиента для идентификации записи сетки.

Но это еще не решение, потому что когда я изменить значение ячейки сетки (я использую inline editing), виджет только посылает на сервер измененное значение и RECID, но не составной ключ. Поэтому я не могу определить строку таблицы базы данных для обновления.

У кого-то есть решение?

Возможно, конфигурация принудительно отправляет ключевой объект на сервер?

+0

Можете ли вы изменить API-код сервера для учета изменений в обработке обратных ссылок? – JRD

ответ

0

От documentation:

Сохранить представит измененные записи. Однако вы можете перезаписать onSave событие и отправить все, что хотите. Вы можете либо (1) добавить его к объекту grid.postData или (2) представить его себе с $ .ajax()

Похоже, вы должны переопределить поведение по умолчанию, чтобы делать то, что вы хотите.

Смежные вопросы