Lib.Web.Mvc:它真的需要buildSelect函数吗?

时间:2013-04-09 21:15:14

标签: jquery razor asp.net-mvc-4 jqgrid lib.web.mvc

我最近一直在测试这个库,并注意到在使用JqGridColumnEditable映射模型属性时,我们可以指定dataUrl参数,以便库可以获取选择输入的数据(EditType = JqGridColumnEditTypes.Select)。

我的问题很简单:我是否真的需要实现buildSelect js函数来实际创建选项?我的意思是,我一直在寻找一个json模式来返回,所以它可以自动构建它,因为我无法相信它没有实现。

有人知道它是否在从dataUrl收到json时自动填充选择输入?预期的格式是什么? 如果它还不可能,那么你有什么建议从buildSelect函数访问select输入以便手动填充它?我试过'这个',没有引号,也没有成功。

1 个答案:

答案 0 :(得分:0)

不幸的是,这个限制在jqGrid本身内部。您可以查看文档here - 它清楚地表明,如果您使用dataUrl,则服务器必须返回准备使用select元素,或者您需要使用buildSelect函数。< / p>

使用buildSelect函数时,如果不访问select元素,则返回一个元素。它可能看起来像这样(此示例假定您的数据是具有Key和Name属性的对象的集合):

var buildSelectFunction = function(data) {
    var selectItems = JSON.parse(data.responseText);
    var selectMarkup = '<select>';

    if (selectItems && selectItems.length) {
        for (var i = 0; i < selectItems.length; i++) {
            var selectItem = selectItems[i];
            selectMarkup += '<option value="' + selectItem.Key + '">' + selectItem.Name + '</option>';
        }
    }

    return selectMarkup + '</select>';
};