Kendo Jquery ForeignKey Dropdownlist 值
Posted
技术标签:
【中文标题】Kendo Jquery ForeignKey Dropdownlist 值【英文标题】:Kendo Jquery ForeignKey Dropdownlist values 【发布时间】:2021-11-18 05:54:25 【问题描述】:我的应用程序是 MVC 5,使用 Kendo UI Jquery 可编辑网格。其中一列是下拉列表,使用:
field: "ApplicableCourse_ID", title :"Course", values: myDDL1
我使用下面的 Ajax 来生成 values 数组 myDDL1
$.ajax(
url: '@Url.Action("GetFreeAccessDropdownList", "fff")',
type: "GET",
async: false,
cache: false,
dataType: "json",
success: function (result)
myDDL1.push(JSON.stringify(result.Grid1));
var grid = $("#grid").data("kendoGrid");
grid.refresh();
,
error: function (request, status, error)
alert(request.responseText);
);
我得到了正确的值和文本:
但是;网格显示值而不是文本。如果我使用静态数组:
var myDDL1 = [
"value": 54, "text": "Fuel Spill Response Plan" ,
"value": 56, "text": "Community Fuel Contractor Manual" ,
"value": 91, "text": "Blocking and Cribbing" ];
显示正确的文本。动态数组和静态数组有区别吗?
【问题讨论】:
【参考方案1】:在填充集合后调用网格的 refresh() 方法是不够的,因为它不会刷新模板和外键列。
有两种选择:
-
直接从列进行AJAX调用,无需处理成功回调:
Remote data binding for foreign key
-
将网格的autoBind property 设置为false。在自定义 AJAX 的成功回调中,调用网格数据源的fetch() method。
【讨论】:
谢谢。我尝试了选项2;没用。你能解释一下选项1吗?不幸的是,该链接没有说明如何操作。 这是解决方案的一个示例 - dojo.telerik.com/UNuXOBIn。请注意,AJAX 请求的 setTimeout() 函数仅用于确保 JS 线程已完成网格初始化,然后我们才调用 fetch() 方法。 感谢您的努力【参考方案2】:以防万一其他人有这个问题;我使用的解决方案是在控制器中生成列表的 ViewBag:
var grid1 = db.Courses.Select(c => new
value = c.ID,
text = c.Name,
).ToList();
ViewBag.Course = grid1;
在视图中
var myDDL1 = @html.Raw(Json.Encode(ViewBag.Course));
网格列
field: "ApplicableCourse_ID", filterable: multi: true, search: true , values: myDDL1
【讨论】:
以上是关于Kendo Jquery ForeignKey Dropdownlist 值的主要内容,如果未能解决你的问题,请参考以下文章
在 Kendo Grid 中编辑时过滤 ForeignKey 的可用值