【发布时间】:2011-07-21 07:16:33
【问题描述】:
我正在使用 Datatables + jEditable 来显示我的数据库中的数据并允许用户直接编辑每个单元格。
目前我能够实现内联编辑并将更新的值保存回数据库以供文本字段和日期选择器使用,但是,我遇到了数据问题,我需要允许通过下拉菜单进行编辑。
我需要编辑的值是通过外键关系从另一个数据库表中检索出来的。
<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”方法的用途是什么,但我将其作为示例包含在内
当我尝试点击该字段时,我从 firebug 收到一个 javascript 错误:“xxx”未定义(xxx 是 foodtypename)
如果我将视图更改为:
<td id="type@(item.FoodID)" class="dropdown">
@Html.DisplayFor(modelItem => item.FoodTypeID)
</td>
错误消失了,但我得到一个空的下拉菜单。
这里真的需要一些帮助......
【问题讨论】:
标签: jquery asp.net-mvc-3 datatables jeditable