我正在处理ASP.NET MVC5项目,需要用Kendo Grid jQuery更改表。
当前,我正在从Api控制器返回数据,该Api控制器如下所示:
[
headers:{{
"label": "Name",
"id": "name",
"isfixed": true,
"width": "200px"
},
{
"width": "200px",
"isfixed": false,
"id": "city",
"label": "City"
},
},
rows:{
{name:"Joe",city:"Berlin"},
{name:"Doe",city:"London"},
...
}
]
剑道似乎不喜欢这种格式。只有这样发送JSON,它才起作用:
[
{ name: "Joe", City: "Berlin" },
{ name: "Doe", City: "Londo" }
]
问题:我可以使剑道网格工作与第一种类型的数据,因为我需要动态列和不同的表的数据?
如何实现这一点的详细说明如下:https://docs.telerik.com/kendo-ui/knowledge-base/create-with-dynamic-columns-and-data-types
实现它的代码:
<div id="grid" style="width:1000px;"></div>
<script>
var isDateField =[];
$.ajax({
url: "https://www.mocky.io/v2/5835e736110000020e0c003c",
dataType: "jsonp",
success: function(result) {
generateGrid(result);
}
});
function generateGrid(response) {
var model = generateModel(response);
var columns = generateColumns(response);
var grid = $("#grid").kendoGrid({
dataSource: {
transport:{
read: function(options){
options.success(response.data);
}
},
pageSize: 5,
schema: {
model: model
}
},
columns: columns,
pageable: true,
editable:true
});
}
function generateColumns(response){
var columnNames = response["columns"];
return columnNames.map(function(name){
return { field: name, format: (isDateField[name] ? "{0:D}" : "") };
})
}
function generateModel(response) {
var sampleDataItem = response["data"][0];
var model = {};
var fields = {};
for (var property in sampleDataItem) {
if(property.indexOf("ID") !== -1){
model["id"] = property;
}
var propType = typeof sampleDataItem[property];
if (propType === "number" ) {
fields[property] = {
type: "number",
validation: {
required: true
}
};
if(model.id === property){
fields[property].editable = false;
fields[property].validation.required = false;
}
} else if (propType === "boolean") {
fields[property] = {
type: "boolean"
};
} else if (propType === "string") {
var parsedDate = kendo.parseDate(sampleDataItem[property]);
if (parsedDate) {
fields[property] = {
type: "date",
validation: {
required: true
}
};
isDateField[property] = true;
} else {
fields[property] = {
validation: {
required: true
}
};
}
} else {
fields[property] = {
validation: {
required: true
}
};
}
}
model.fields = fields;
return model;
}
</script>
我使用的剑道网格有三列名称,日期我在其中一列有编辑按钮,现在如果我点击“编辑”按钮,那么相应的行应该在“日期”字段的网格内的KendoDataPicker处于编辑模式。如何实现这一点?
问题内容: 为了避免未知,我一直试图避免使用大多数HTTP协议的属性。 但是,我对自己说,今天我将面对恐惧,开始有目的地使用标题。我一直在尝试将数据发送到浏览器并立即使用。例如,如果我有一个处于就绪状态4的Ajax处理程序函数,如下所示: 并且我在PHP代码中设置了content-type标头: 当清楚地告诉浏览器传入数据为时,为什么不能直接从处理程序函数访问该属性? 问题答案: 该头只是作为您的
我现在用了一段时间格里德莱门茨。我使用了以下代码: 打字稿(Gridelements(已弃用)(gridelements)): 流体模板: 页面: 但是现在我想使用“Gridelements w/DataProcessing(推荐)(Gridelements)”,因为另一个已被弃用。但我看到的只是一个错误: 尝试解析控制器操作的模板文件”标准- 如果我用打字稿代码写这个: 当我创建命名文件时,错误
问题内容: 我有JSON,其结构如下: 我应该如何使用字段和模型中的设置将address.street的值传递到列中? 非常感谢您的任何建议。 问题答案: 如果要在单个列中显示所有值,请执行@RobinGiltner的建议。 如果要在不同的列中显示每个成员,则可以执行以下操作: 即: 用作字段名称。这样甚至可以像示例中一样编辑字段: http //jsfiddle.net/OnaBai/L6LwW
问题内容: 如何使用嵌套JSON填充Kendo UI网格。 我的意思是我的JSON就像 我想要Kendo UI Grid,其列为Id,Name,OtherType和OtherStuff。 提前致谢。! 问题答案: 对于复杂的JSON结构,您可以使用 如果您将JSON稍微更改为: 那么您可以使用:
我们使用的是KendoUIMVC,需要过滤大量记录并在只读数据网格中显示它们。该页面具有多个选择小部件,每个小部件都允许用户从特定数据库列的不同值列表中进行选择。用户在MultiSelect窗口小部件中输入选择后,将单击“刷新”按钮更新网格。网格的数据源。AJAXRead方法应该将用户的选择传递给服务器,并在网格中显示结果。 我知道如何填充MultiSelect小部件,以及如何通过Ajax从服务器