Я использую Datatables + jEditable для отображения данных из моей базы данных и позволяю пользователю редактировать каждую ячейку напрямую.
В настоящее время я могу реализовать встроенное редактирование и сохранить обновленное значение обратно в базу данных для текстового поля итакже с помощью DatePicker, однако, я столкнулся с проблемой с данными, которые мне нужно разрешить редактировать с помощью раскрывающегося списка.
Значение, которое мне нужно отредактировать, извлекается из другой таблицы БД по взаимосвязи внешнего ключа.
<td id="type@(item.FoodID)" class="dropdown">
@Html.DisplayFor(modelItem => item.FoodTypes.FoodTypeName)
</td>
Я следую указаниям из http://gunbladeiv.blogspot.com/2011/06/part-2-mvc-3-and-datatables-with-inline.html, используя действие для возврата списка выбора по Json:
function getFoodTypesList() {
var list;
$.post('GetFoodTypes', {},
function (data) {
list = validateJSON(data);
},
'json/javascript'
);
return list;
}
function validateJSON(x) {
var orig = x;
var stgify = JSON.stringify(orig);
var splitchar = ['\\"', '\',\'', '[', ']', '\"'];
var joinchar = ['\'', '\':\'', '', '', ''];
for (i = 0; i < 5; i++) {
stgify = stgify.split(splitchar[i]);
tmp = stgify.join(joinchar[i]);
stgify = tmp;
}
stgify = "{" + stgify + "}";
var finalEdit = stgify;
return finalEdit;
}
Вопрос: я не понимаю, для чего используется метод validateJson, ноЯ включаю его так же, как в примере
Когда я пытаюсь щелкнуть по полю, я получаю ошибку javascript от firebug: «xxx» не определено (xxx - это имя типа пищи)
Если яизмените представление на:
<td id="type@(item.FoodID)" class="dropdown">
@Html.DisplayFor(modelItem => item.FoodTypeID)
</td>
Ошибка исчезла, но я получил пустой выпадающий список.
Действительно нужна помощь здесь ....