我有一个Kendo UI Grid,可以在创建新记录或编辑现有记录时加载弹出窗口.
当我正在创建一条新记录时,我努力找到一种方法将更改按钮的文本更改为"保存"(它当前显示为"更新" - 并且它不正确).
我能够更改弹出窗口的标题,但我的问题是:如何更改按钮文本?
这是代码:
$("#grid").kendoGrid({
dataSource: dataSource,
pageable: true,
sortable: true,
groupable: true,
height: resizeGrid(),
filterable: true,
toolbar: ["create"],
columns: [
{ field: "OfficeName", title: "Office Name" },
{ field: "SupportNo", title: "Phone No.", width: "100px" },
{ field: "SupportEmail", title: "Email Address", width: "130px" },
{ field: "SupportFax", title: "Fax No.", width: "100px" },
{ field: "SupportFtp", title: "Ftp Url", width: "150px" },
{ command: ["edit", "destroy"], title: "Actions", width: "160px" }],
editable: "popup",
edit: …Run Code Online (Sandbox Code Playgroud) 我的代码在C#.NET中我正在使用Kendo Grid版本2013.2.716.340和服务器绑定来显示网格中的数据.
在Kendo UI Grid中,我有一个dateTime列,但列过滤器输入只有一个日期选择器但没有时间选择器.因此,如果我选择该选项IsEqualTo并给出一个日期,那么我得到零结果,因为时间00:00:00在过滤器中设置,但列有一些时间值.我想添加时间选择器和日期选择器.
我尝试在我的专栏上执行此操作,但它不起作用:
columns.Bound(o => o.Time).Title("Time").Format("{0:MM/dd/yyyy HH:mm:ss}").Filterable(f => f.UI("DateTimeFilter")).Width("5%");
Run Code Online (Sandbox Code Playgroud)
并已应用以下脚本:
<script type="text/javascript">
function DateTimeFilter(control)
{
$(control).kendoDateTimePicker();
}
</script>
Run Code Online (Sandbox Code Playgroud)
上面的代码在我datetime从精选中选择时起作用datetimepicker但在我选择时它不起作用isequalto.例如:如果我datetime在我的剑道网格列中显示"12/21/2013 07:15:45",当我将其复制datetime到isequalto过滤器下的选项时,它不会提供任何数据.
此外,我尝试了此链接提供的示例 它也没有在我的情况下工作.此链接上的示例使用Ajax绑定.我需要在服务器绑定的情况下应用它.
这是附加图像,显示我想要应用的内容.这是图像的链接.如果我将datetime网格中显示的内容复制到过滤器中它应该正确过滤并给出结果.
如果有人能帮助我解决我的问题,我将非常感激.提前致谢.
如果我们知道Kendo网格中的列名,有没有办法找出网格中的列索引?
例如
EmployeeID| Name
123 | John
Run Code Online (Sandbox Code Playgroud)
我想知道'Name'字段的索引,即网格中的1.有什么建议.
谢谢.
Sanjeev
我有一个可编辑的Kendo网格,我可以编辑一个单元格,网格将红色标记添加到单元格的左上角.
我转到另一页,然后返回编辑发生的页面,红色标记消失,但单元格中新添加的值仍然存在.我在剑道网站上看到了对此的回应,其中建议:"为了在每次网格反弹时显示"脏标志",它将必须遍历所有模型,检查所有字段(如果已更改且可见)网格单元格."
我假设这将需要DataBound()在网格事件上完成(当我切换页面时似乎触发)我将手动将k-dirty-cell类应用于单元格,但我无法弄清楚如何在代码中使这个工作.任何想法都非常感谢.
$(function () {
$("#grid").kendoGrid({
height: 550,
scrollable: true,
sortable: true,
filterable: true,
resizable: true,
reorderable: true,
groupable: false,
editable: true, // enable editing
columns: [
//REMOVED TO SHORTEN EXAMPLE
],
toolbar: [{name: "save", text: "Save All Records"}, "cancel"],
dataSource: {
schema: {
data: "d",
total: function(data) {
return data.d.length;
},
model: {
//REMOVED TO SHORTEN EXAMPLE
}
}
},
batch: true,
pageSize: 10,
transport: {
read: {
},
parameterMap: function (data, operation) { …Run Code Online (Sandbox Code Playgroud) 这里的问题是在kendogrid列菜单过滤器中没有限制过滤我不需要负值.在第二个图像中输入箭头时它的负值是否如何限制负值?

打开Kendo网格批量编辑后,我知道您可以挂钩创建,更新和销毁命令,当您单击"保存更改"时,Kendo将向服务器发送3个单独的命令.
我想知道是否有任何方法可以将所有三组更新作为单个调用发送到服务器 - 就像一个事务.或者甚至按照指定的顺序发送每个,并在发送下一个之前检查成功.
我能想到的唯一方法是有一个自定义的Save Changes实现,当被调用时,它会查找网格数据源以查找已添加的所有行(isNew()用于添加的行),删除(已删除行的_destroyed) ),更新(isDirty用于更新的行),然后使用ajax使用识别的数据集自己调用服务器端点.
我有一个包含3个项目的父网格,每个项目都有一个子网格作为细节的一部分.当调用CHILD上的编辑事件时,我想获取父(masterrow)的数据,下面的代码总是得到mastergrid中的第一项,而不是单击的项的实际父项,例如,如果我编辑/添加网格中的一个项目用于主网格中的第二个项目,它仍然获取主网格数据的第一项.
var parentData = $("#gridRoomTypes").data("kendoGrid").dataItem(e.container.closest("tr"));
Run Code Online (Sandbox Code Playgroud)
编辑有:
e.sender (child grid), e.container, e.model "gridRoomTypes" is my master grid
Run Code Online (Sandbox Code Playgroud) 我有这样的结构的JSON:
"id":1,
"user_role":"ADMIN",
"state":"ACTIVE",
"address":{
"street":"test 59",
"city":"City test",
"post_number":"25050"
},
Run Code Online (Sandbox Code Playgroud)
我应该如何使用字段和模型中的设置将address.street的值传递到列中?
非常感谢任何建议.
如果未选中当前行,如何编辑当前行?我有一个batch启用的Kendo网格navigatable.我的目标是使用该dataItem.set()方法手动编辑列中的数据.但是,当您添加行时,它不会自动选中.因此,vm.testGrid.dataItem(vm.testGrid.select())不能使用.
vm.testGrid.dataSource.get(e.model.get("Id")) 获取新添加的行,但如果在保存之前添加了多行,它将始终获得第一个添加的行("Id"设置为自动增量并由数据库服务器自动生成,因此所有新创建的行最初将为0在保存之前).
vm.onEdit = function (e) {
$('input.k-input.k-textbox').blur(function (f) {
//var data = vm.testGrid.dataItem(vm.testGrid.select());
var data = vm.testGrid.dataSource.get(e.model.get("Id")); // will always get the firstly added row
data.set("LookupCol", "1000");
}
});
Run Code Online (Sandbox Code Playgroud)
有没有更好的解决方案来获取当前编辑的行?或者有更好的方法来编辑当前行吗?
我想在Kendo Grid上隐藏一些列,并将它们作为可见列导出到excel.但是,使用隐藏(true)或Visible(false)没有任何意义,并且不会导出这些字段.此页面上的变通方法无效.任何的想法?
视图:
@(Html.Kendo().Grid<ContactViewModel>()
.Name("Grid")
.Columns(columns =>
{
columns.Bound(m => m.NameSurname).Title("Name Surname").Width("%100");
columns.Bound(m => m.InstituteName).Title("Institute Name").Width("250px");
columns.Bound(m => m.CityName).Title("City").Width("145px");
columns.Bound(m => m.RegionName).Title("Region").Width("145px");
columns.Bound(m => m.ContactMobile).Title("Mobile").Width("125px");
columns.Bound(m => m.ContactAddress).Title("Address").Hidden(true); //I want to export these fields
columns.Bound(m => m.ContactAddress).Title("Address").Visible(false); //I want to export these fields
})
.ToolBar(toolbar =>
{
toolbar.Template(@<text>
<div class="toolbar">
<button class="btn btn-primary btn-xs pull-right k-button k-button-icontext k-grid-excel">
<span class="k-icon k-excel"></span>
Liste (xls)
</button>
</div>
</text>);
})
.Excel(excel => excel
.FileName("List.xlsx")
.Filterable(true)
.AllPages(true)
.ProxyURL(Url.Action("Excel_Export_Save", …Run Code Online (Sandbox Code Playgroud) asp.net-mvc export-to-excel kendo-ui kendo-grid kendo-asp.net-mvc
kendo-grid ×10
kendo-ui ×8
javascript ×4
jquery ×3
.net ×1
angularjs ×1
asp.net-mvc ×1
c# ×1
datagrid ×1
json ×1
nested ×1
telerik ×1
telerik-grid ×1