当您使用MVVM绑定到Kendo UI Grid时,数据绑定将触发一次,一切都很好.如果您需要在事后更新该数据,则每次更改任何viewmodel(或子视图模型)上的一个数据时,整个网格都会重新数据绑定.因此,如果网格中有一些绑定到模板的单元格,并且您必须从某个外部ajax源更改viewmodel上的2或3个属性,则Databound将为每个更改的模型触发2或3次,从而导致整个可见区域重新绑定.我们怎样才能一次更新大量数据并且只有数据绑定一次?
我对Kendo Grid来说遇到了大麻烦.
如果我使用for循环作为客户端模板
col.Bound(m => m.Compteurs)
.ClientTemplate("# for (var i=0;i<4;i++) { console.log(i) } #");
Run Code Online (Sandbox Code Playgroud)
我永远不会增加.与循环中的while循环和增量相同.
怎么解决这个?
谢谢
编辑 - 网格的完整声明:
@(Html.Kendo().Grid<EAGLE.Models.ParamUf>()
.Name("ParamGrid")
.Columns(col =>
{
col.Bound(m => m.Groupement);
col.Bound(m => m.Etablissement).ClientTemplate("#= Etablissement.EtablissementName #");
col.Bound(m => m.Service).ClientTemplate("#= Service.ServiceName #");
col.Bound(m => m.Discipline).ClientTemplate("#= Discipline.DisciplineName #");
col.Bound(m => m.Unite).ClientTemplate("#= Unite.UniteName #");
col.Bound(m => m).ClientTemplate(Html.Partial("_Tel").ToHtmlString());
col.Bound(m => m.Unite.TypeHebergement).Title("Hébergement");
col.Bound(m => m.Installe);
col.Bound(m => m.Ferme);
col.Bound(m => m.Compteurs).ClientTemplate("# for (var i=0;i<4;i++) { console.log(i) } #");
col.Command(commands =>
{
commands.Edit().UpdateText("Mettre à jour").CancelText("Annuler").Text("Edit");
commands.Destroy().Text("Suppr.");
}).Title(string.Empty).Width(160);
}
) …Run Code Online (Sandbox Code Playgroud) 我们正在使用Kendo网格.我在我的cshtml文件和我的js文件中创建了一个表,我将它绑定到数据.我的问题是网格分页不会消失.我需要页面上的所有项目,因为我们预计不会有太多负载.我尝试删除pageable属性,我尝试标记pageable: false.但我仍然看到网格在一个页面中只显示10个项目并给出分页.
通过使用this.pager.element.hide(),我们可以隐藏寻呼机,但这不能解决目的,因为寻呼机被隐藏但寻呼仍在进行中.所以,现在,从第11个元素开始的元素oare在页面上,但我们无法导航到它.
这是现有的代码.我删除了表中不相关的列..CSHTML文件:
<table style="width: 100%;" class='list-entity' id='inboxItems'>
<thead>
<tr>
<th data-field='Actions' class="iconCell" style='width: 1%'> </th>
<### THERE ARE MORE COLUMNS HERE AND THOSE HAVE CORRESPONDING COLUMNS IN SETTINGS ###>
</tr>
</thead>
</table>
Run Code Online (Sandbox Code Playgroud)
JS档案:
var settings = {
kendosettings: {
dataSource: {
data: requestItemsList,
schema: {
// required if get method will be used
model: {
id: "StepApproverKey"
}
},
group: [
{
field: "GroupByAttribute",
dir: "asc",
aggregates:
[
{ field: "GroupByAttribute", aggregate: "count" }]
}] …Run Code Online (Sandbox Code Playgroud) 我是kendo.Ui的首发,我为创建网格编写了这段代码
@(Html.Kendo().Grid<BrandViewModel>(Model)
.Name("Grid")
.Columns(columns =>
{
columns.Bound(p => p.BrandName);
columns.Bound(p => p.BrandAbbr);
columns.Bound(p => p.SrcImage);
columns.Command(command => command.Custom("Edit").Click("editItem"));
})
.DataSource(dataSource => dataSource
.Ajax()
.Read(read => read.Action("CustomCommand_Read", "Brand"))
.Model(model => model.Id(p => p.Id))
)
)
Run Code Online (Sandbox Code Playgroud)
我想当用户点击在kendo窗口中Edit打开的按钮时Edit view我写这段代码
@(Html.Kendo().Window().Name("Details")
.Title("Customer Details")
.Visible(false)
.Modal(true)
.Draggable(true)
.Width(300)
)
<script type="text/x-kendo-template" id="template">
<div id="details-container"> <!-- this will be the content of the popup -->
BrandName: <input type='text' value='#= BrandName #' />
</div>
</script>
Run Code Online (Sandbox Code Playgroud)
和java脚本代码:
<script type="text/javascript">
var detailsTemplate = kendo.template($("#template").html());
function …Run Code Online (Sandbox Code Playgroud) 我已经创建了asp.net MVC 4应用程序,其中我使用的是实体框架,类"Data"就是模型.
AdventureWorksTrainingEntities _dbContext = new AdventureWorksTrainingEntities();
Data _data = new Data(); //Model
Run Code Online (Sandbox Code Playgroud)
现在我想将表的数据显示到kendo网格.在控制器中,我使用以下代码:
public ActionResult Index()
{
List<Movie> dataForGrid= _dbContext.Movies.ToList();
return View(dataForGrid);
}
Run Code Online (Sandbox Code Playgroud)
现在我不知道在Kendo Grid中显示数据(我是kendo和MVC的新手).我也试过以下但没有工作:
@model IEnumerable<MvcApp.Models.Data>
@using Kendo.Mvc.UI
@{
ViewBag.Title = "Index";
}
<h2>Grid For Data</h2>
Html.Kendo().Grid<Order>()
.Name("Grid")
.DataSource(dataSource => dataSource // Not implemented
)
Run Code Online (Sandbox Code Playgroud) asp.net-mvc asp.net-mvc-4 kendo-ui kendo-grid kendo-asp.net-mvc
我的代码在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 UI,我希望通过升序日期默认排序我的网格,但无法弄清楚如何修改它.我的理解是它是数据源部分的一部分:
@(Html.Kendo().Grid<CustomerAnimalViewModel>()
.Name(gridId)
.HtmlAttributes(new { @class = "grid" })
.Columns(columns =>
{
columns.Bound(c => c.AnimalId).Visible(false);
columns.Bound(c => c.RegistrationNumber).ClientTemplate("<a class='active' href=javascript:viewAnimal(\"" + "#: AnimalId #" + "\",\"" + "#=escape(Name) #" + "\") >#: RegistrationNumber #</a>");
columns.Bound(c => c.Type);
columns.Bound(c => c.Prefix);
columns.Bound(c => c.Name);
columns.Bound(c => c.DateOfBirth).ClientTemplate("#= kendo.toString(DateOfBirth == null ? '' : DateOfBirth, '" + Constants.DateFormat + "') #");
columns.Bound(c => c.Sex);
columns.Bound(c => c.HMC);
columns.Bound(c => c.Usability).Visible(false);
columns.Bound(c => c.Status);
columns.Command(command => { command.Destroy(); }).Title(Resources.Actions);
})
.DataSource(dataSource => …Run Code Online (Sandbox Code Playgroud) 在我的剑道网格中,我想更改过滤器中的日期格式
例如:2015年1月30日至2015年1月30日
我已经更改了开始日期的日期格式
field: "StartDate",
title: "Start Date",
width: 30,
format: "{0:MMM dd, yyyy}",
parseFormats: "{0:MM/dd/yyyy}",
headerTemplate: '<label for="check-all"><b>Start Date</b></label>',
headerAttributes: { style: "text-align: center;" },
attributes: { style: "text-align:center !important;padding-right: 25px;" }
Run Code Online (Sandbox Code Playgroud)
代码在我的可过滤
filterable: {
extra: false,
operators: {
string: {
startswith: "Starts with",
eq: "Is equal to"
}
}
},
Run Code Online (Sandbox Code Playgroud)
截图请看这个
谢谢
如果我们知道Kendo网格中的列名,有没有办法找出网格中的列索引?
例如
EmployeeID| Name
123 | John
Run Code Online (Sandbox Code Playgroud)
我想知道'Name'字段的索引,即网格中的1.有什么建议.
谢谢.
Sanjeev
我想将红色应用于已完成时间列值大于 24 的行。我该怎么做。请帮助我是角度新手。
<kendo-grid [kendoGridBinding]="gridData">
<kendo-grid-column field="RequestNumber" title="Request No."
width="110" >
</kendo-grid-column>
<kendo-grid-column field="RequestNumber" title="Request No." width="110" >
</kendo-grid-column>
<kendo-grid-column field="Name" title="Name." width="110" >
</kendo-grid-column>
<kendo-grid-column field="CompletedIn" title="CompletedIn" width="110" >
</kendo-grid-column>
</kendo-grid>
Run Code Online (Sandbox Code Playgroud) kendo-grid ×10
kendo-ui ×9
asp.net-mvc ×4
c# ×2
javascript ×2
.net ×1
angular ×1
mvvm ×1
telerik ×1
telerik-grid ×1