试图找出剑道世界,并将网格设置为json数组数据源.
Error is "JavaScript runtime error: Invalid template: <tr
data-uid="#=data.uid#" role='row'><td role='gridcell'>#=data.Account
Num==null?'':data.Account Num#</td>...".
Run Code Online (Sandbox Code Playgroud)
我注意到在这个错误中我看到空值,想知道这是否意味着数据没有绑定?
我看到列标题,但不是任何行.我还必须提一下,我的数据中没有任何ID字段,因为我正在使用SQL视图中的临时表.
function populateGrid(search) {
$("#grdAttributes").kendoGrid({
dataSource: {
transport: {
read: {
url: "http://127.0.0.2:6080/arcgis/rest/services/WW/WW2/MapServer/exts/RestSOE/Search%20Query?columnName=" + search.columnName + "&operand=" + search.operand + "&searchVal=" + search.searchVal + "&f=",
dataType: "json",
type: 'GET'
}
},
},
serverPaging: true,
serverSorting: true,
serverFiltering: true,
scrollable: true,
height: 150
});
$("#grdAttributes").data().kendoGrid.dataSource.view()
};
Run Code Online (Sandbox Code Playgroud)
如果我继续VS2012中的错误,我会看到网格中的列标题.只是没有行数据.(示例JSON下面:)
-[{
-"Address": "PO BOX 20",
-"City": "HAVENWOOD",
-"Location": "",
-"Name 1": "UNIVERSITY",
-"Name 2": "",
-"Street": "NEY AVE",
-"Street …Run Code Online (Sandbox Code Playgroud) Hello使用类似于此示例的复选框实现了自定义筛选器菜单:
http://dojo.telerik.com/@SiliconSoul/oBoCu
我的问题是,如果用户选择/取消选择一些复选框,但从不点击"过滤"按钮.我基本上想将他们的选择重置为菜单关闭之前他们最初的选择但不认为过滤器菜单有这样的事件.
如何绑定菜单关闭?
我的应用程序正在运行时区为UTC+05:30 的服务器。我的客户端机器有UTC-05:00时区。
现在假设他进入1989年12月31日在一个文本框,并保存表单,当他在剑道网查看详细的日期显示为1989年12月30日,而不是1989年12月31日。
我通过更改电脑的时区来调试应用程序,在调试中我发现
C#
public ActionResult GetPatients([DataSourceRequest] DataSourceRequest request, int includePatientId = 0)
{
return Json(this.patienModel.RetrieveActivePatients().ToDataSourceResult(request));
}
Run Code Online (Sandbox Code Playgroud)
剑道格子
@(Html.Kendo().Grid<RxConnectEntities.Patient>
().Name("PatientList")
.Columns(columns =>
{
columns.Bound(p => p.PatientID).Visible(false);
columns.Bound(p => p.Name).Width(100);
columns.Bound(p => p.Gender).Width(80);
columns.Bound(p => p.DateOfBirth).Width(90)
.Format("{0:MM/dd/yyyy}")
.EditorTemplateName("DateOfBirth")
.Filterable(false).HtmlAttributes(new { id = "gridDateOfBirth" })
.ClientTemplate("#: kendo.toString(kendo.parseDate(data.DateOfBirth),'MM/dd/yyyy') #");
columns.Bound(p => p.PhoneNumber).Title("Phone Number").Width(110);
columns.Command(command =>
{
command.Custom("Select").Click("OnSelectRow");
command.Custom("Edit").Text("Edit").Click("EditGrid"); …Run Code Online (Sandbox Code Playgroud) 我想每列禁用(或者可能定义一些自定义列表)运算符.我尝试在列定义中执行此操作:
"field": "Name",
"title": "name",
"attributes": {
"class": "nameCell"
},
"filterable": {
"operators": gridTranslationService.getHierarchyOperators()
}
Run Code Online (Sandbox Code Playgroud)
但它不适合我.任何sugestions我怎么能这样做?
我有多个过滤器将应用于剑道网格数据源。
如果我有如下所示的过滤器,则一切正常,其中gridConfig是我的剑道网格的配置:
var mainFilters = [];
mainFilters.push({
field: "x",
operator: "eq",
value: 1
});
mainFilters.push({
field: "y",
operator: "eq",
value: 2
});
gridConfig.instance.dataSource.filter({
logic: "and",
filters: mainFilters
});
Run Code Online (Sandbox Code Playgroud)
我的问题就出在这里。我有另一个属性,假设z是一个值数组。我想用OR逻辑过滤 z 属性值上的剑道网格数据源。例如,这是我的 z 属性过滤器:
zFilters.push(
{ field: "z", operator: "eq", value: 3},
{ field: "z", operator: "eq", value: 4});
gridConfig.instance.dataSource.filter({
logic: "or",
filters: zFilters
});
Run Code Online (Sandbox Code Playgroud)
现在,我想组合这两个过滤器并将它们同时应用到我的剑道网格数据源上。这意味着我的最终结果是基于这样的逻辑:
(x = 1) AND (y = 2) AND (z = 3 OR z = 4)
Run Code Online (Sandbox Code Playgroud)
我怎样才能用剑道过滤器做到这一点?
根据 Telerik 网站上有关数据本地绑定的文档:
服务器 - 小部件在进行分页、排序和过滤时执行服务器端请求 (HTTP GET)。
Ajax - 小部件在进行分页、排序、过滤、分组或保存数据时将发出 Ajax 请求。
这是否意味着目前无法使用 Kendo 的 MVC Grid 在本地编辑数据?
我的目标是能够编辑网格,然后将整个页面以及模型的其他部分提交回服务器,并将数据全部保存在一起,而不是进行 ajax 调用来将数据保存在网格中。
使用下面的代码我可以加载网格,但是编辑单元格不会持续存在,并且当我转到后退页面时,数据不会绑定模型。
@(Html.Kendo().Grid<LaborTimeViewModel>(Model.LaborTimes)
.Name("Grid")
.Columns(columns =>
{
columns.Bound(p => p.Procedure).ClientTemplate("#=Procedure ? Procedure.ProcedureDescription : ''#").EditorTemplateName("ProcedureEditor");
columns.Bound(p => p.PerformedBy).ClientTemplate("#=PerformedBy ? PerformedBy.UserDescription : ''#").EditorTemplateName("UserEditor");
columns.Bound(p => p.LaborTime).ClientTemplate("#if (LaborTime) {# #:kendo.toString(LaborTime.Hours, '00')#:#:kendo.toString(LaborTime.Minutes, '00')#:#:kendo.toString( '00')# #}#").EditorTemplateName("TimePickerEditor"); //.EditorTemplateName("NumericEditor");
})
.Editable(editable => editable.Mode(GridEditMode.InCell))
.Pageable()
.Sortable()
.Scrollable()
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(20)
.ServerOperation(false)
.Model(model =>
{
model.Id(p => p.WONumber);
model.Id(p => p.PerformedBy);
model.Id(p => p.TimerStart); …Run Code Online (Sandbox Code Playgroud) 我们正在使用React和Kendo:
kendo-ui-core": "^2017.2.621
kendo-ui-react": "^0.14.2
react-kendo": "^0.13.11
Run Code Online (Sandbox Code Playgroud)
试图显示一个可分页的网格。数据从reducer加载并进入状态。它componentWillMount正在将gridOptions设置为状态。在render函数期间,我们获得选项并将数据行和列添加到数据源中。
我们可以获取它来显示数据,格式化列,还可以使分页图标显示在底部,但它会显示no items to display。
API调用将返回50个结果,如果我们删除页面大小,则会显示所有50个结果。
import React, { Component } from "react";
import { withRouter, NavLink } from "react-router-dom";
import { connect } from "react-redux";
import { getDataBookings } from "./actions";
import { Grid } from 'kendo-ui-react'
class DataBookings extends Component {
componentWillMount(){
this.state = {
gridOptions: {
toolbar: ["excel"],
excel: {
fileName: "bookingsExport.xlsx"
},
sortable: {
mode: "multiple",
allowUnsort: true
},
scrollable: true,
resizable: true,
editable: false, …Run Code Online (Sandbox Code Playgroud) 我们有一个 React Grid 组件,我们需要为所有 Grid 组件分配 Id。有什么建议我们该怎么做?组件片段如下所示:
<Grid
data={this.state.items}
sortable={{
allowUnsort: this.state.allowUnsort,
mode: this.state.multiple,
sortDir:this.state.sortDir
}}
sort={this.state.sort}
onSortChange={this.sortChange}
filterable={true}
filter={this.state.filter}
onFilterChange={this.filterChange}
onPageChange={this.pageChange}
total={this.state.total}
skip={this.state.skip}
pageSize={this.state.pageSize}
pageable={this.state.pageable}
scrollable={this.state.scrollable}
//style={{ height: '500px' }}
>
<Column
field="networkName"
sortable={{
allowUnsort: this.state.allowUnsort,
mode: this.state.multiple ? 'multiple' : 'single',
}}
onSortChange={this.sortChange} title="Network Name" width="400px" cell={NetworkNameCell} />
<Column field="networkGroups" title="Network Groups" width="250px" id="networkGroupsId"/>
<Column field="networkType" title="Network Type" width="250px" id="networkTypeId"/>
<Column field="providersCount" title="Assigned Providers" />
<Column field="locationsCount" title="Assigned Locations" />
<Column cell={this.DeleteCommandCell} title="Action" sortable={false} filterable={false} />
<span class="k-icon …Run Code Online (Sandbox Code Playgroud) 我使用Kendo UI Grid进行inline编辑,并且其中一个字段(propertyLogo)使用kendoUpload上传图像。通过kendoUpload函数fileUploadEditor,我使用saveUrl: "./image.php",图像并将其转换为base64格式以保存到数据库中。当我添加/编辑时,我设法成功更新了除该propertyLogo字段以外的所有字段,它返回NULL结果。我不知道我做错了哪一部分,但是无法将图像保存到数据库中。在这里,我将提供我的脚本。
我的数据源和网格
/****************/
/** DATASOURCE **/
/****************/
var dataSource = new kendo.data.DataSource({
transport: {
read: {
url: "./getPropertyMasterData.php",
type: "POST",
data: function() {
return {
method: "getPropertyMasterData",
}
}
},
update: {
url: "./getPropertyMasterData.php",
type: "POST",
data: function () {
console.log("I'm calling update!!");
return {
method: "editPropertyMasterData",
}
},
complete: function (e) {
$('#grid').data('kendoGrid').dataSource.read();
}
},
destroy: {
url: "./getPropertyMasterData.php",
type: "POST",
data: …Run Code Online (Sandbox Code Playgroud)我有一个简单的单元测试,它通过了,但在运行时抛出错误“Harness 正在尝试使用已被破坏的固定装置” ng test --watch=false。发生这种情况是因为我将组件放入吗<ng-template>?有谁知道如何解决这个错误?
describe("MenuComponent", () => {
let testHostFixture: ComponentFixture<TestHostComponent>;
let myMenuHarness: MenuHarness;
beforeEach(
waitForAsync(() => {
TestBed.configureTestingModule({
declarations: [...],
imports: [...],
providers: [...],
}).compileComponents();
})
);
beforeEach(async () => {
testHostFixture = TestBed.createComponent(TestHostComponent);
myMenuHarness = await TestbedHarnessEnvironment.harnessForFixture(
testHostFixture,
MenuHarness
);
testHostFixture.detectChanges();
});
describe("simple test", () => {
it("should pass", async () => {
await myMenuHarness.openMenu();
expect(true);
});
});
@Component({
selector: `my-test-host-component`,
template: `<kendo-grid ...>
<ng-template kendoGridColumnMenuTemplate let-service="service">
<app-my-menu [service]="service"></app-my-menu>
</ng-template>
<kendo-grid-column ... ></kendo-grid-column> …Run Code Online (Sandbox Code Playgroud) kendo-grid ×10
kendo-ui ×6
javascript ×3
reactjs ×2
asp.net-mvc ×1
filter ×1
jasmine ×1
jquery ×1
json ×1
kendo-upload ×1
php ×1
sql ×1
sql-server ×1
typescript ×1