【问题标题】:jEditable - Edit data with drop downjEditable - 使用下拉菜单编辑数据
【发布时间】: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


    【解决方案1】:

    我能够根据我的情况及其工作修改 validateJson 函数!以防万一有人在寻找解决方案,我将在这里发布我的方法:

    // Function to format the food type list into plugin required json format
    function validateJSON(x) {
        var orig = x;
    
        // Split and cover each array item with "" and then join with :
        for (i = 0; i < orig.length; i++) {
            var temp = orig[i].toString();
            var tempArray = temp.split(",");
            for (j = 0; j < tempArray.length; j++) {
                tempArray[j] = "\"" + tempArray[j].toString() + "\"";
            }
            orig[i] = tempArray.join(":");
        }
    
        // Original validateJson method get from website
        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;
    }
    

    【讨论】:

      猜你喜欢
      • 2016-02-03
      • 1970-01-01
      • 1970-01-01
      • 2021-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多