KendoGrid 分页有 "undefined" 和 "NaN"
KendoGrid paging has "undefined" and "NaN"
目前我正在尝试将分页添加到 Kendo 网格。这是完整的错误消息:
Error in event handler for (unknown): TypeError: Cannot read property 'url' of null
at Object.tinyFilter.start (chrome-extension://nlfgnnlnfbpcammlnibfkplpnbbbdeli/site.js:61:43)
at chrome-extension://nlfgnnlnfbpcammlnibfkplpnbbbdeli/site.js:137:16
这是我控制器中的代码:
public ActionResult ExecuteRule(string ruleId, string ruleSql, List<MatchRuleParam> parameters = null)
{
if (Request.Url != null)
{
var query = PaginationQuery.Parse(Request.QueryString);
var upperLimit = query.FromUpper;
var lowerLimit = query.FromLower;
var dataSource = new MatchDataSource();
var results = dataSource.ExecuteTestRule(ruleId, ruleSql, parameters, upperLimit, lowerLimit).Select(k => new { KEY = k });
var response = new Dictionary<string, object>();
response["result"] = results;
response["rowCount"] = MatchDataSource.GetRowCount(ruleId, ruleSql, parameters);
return Json(response, JsonRequestBehavior.AllowGet);
}
return null;
}
当我尝试在下面 url 行的 chrome 中放置断点时,它不会在我的 JavaScript 函数中停止:
function execRule() {
$.ajax({
type: 'POST',
url: "ExecuteRule",
contentType: 'application/json; charset=utf-8',
data: JSON.stringify({
ruleId: PageState.Selected.RuleId,
ruleSql: PageState.SqlEditor.RuleSql.getValue(),
parameters: PageState.RuleParameters
}),
schema: {
errors: function(response) {
return response.error;
},
data: function(response) {
return response.result;
},
total: function(response) {
return response.rowCount;
}
},
success: function(matchedList) {
PageState.RuleResult = matchedList.result;
var dataSource = new kendo.data.DataSource({
data: matchedList.result
});
Grids.RuleResultsGrid.setDataSource(dataSource);
PageState.Selected.ChildKey = null;
updateButtonStates();
},
error: function(e) {
var errorObject = JSON.parse(e.xhr.responseText);
var errorMessage = errorObject.Message;
//clear old error message
//TODO: gridWidget.clearErrorMessage("error-message");
// add new error message
//TODO: gridWidget.addErrorMessage("error-message", errorMessage);
},
pageSize: 10,
requestEnd: this.onRequestEnd
});
代码工作正常,除了由于某种原因 kendo 网格有 "undefined" 和 "NaN",我在这幅图中用红框突出显示:
一打开网页就出现错误。有没有人对我收到 TypeError 的原因有任何建议? TIA.
更新:
"undefined" 和 "NaN" 问题已经解决,但现在我可以 select 各种 pageSize 值,但是当我进行网格刷新时它卡在值“10” ”为什么会这样?
必须将 pageSize 放入数据源中:
function execRule() {
$.ajax({
type: 'POST',
url: "ExecuteRule",
contentType: 'application/json; charset=utf-8',
data: JSON.stringify({
ruleId: PageState.Selected.RuleId,
ruleSql: PageState.SqlEditor.RuleSql.getValue(),
parameters: PageState.RuleParameters
}),
schema: {
errors: function(response) {
return response.error;
},
data: function(response) {
return response.result;
},
total: function(response) {
return response.rowCount;
}
},
success: function(matchedList) {
PageState.RuleResult = matchedList.result;
var dataSource = new kendo.data.DataSource({
pageSize: 10,
data: matchedList.result
});
Grids.RuleResultsGrid.setDataSource(dataSource);
PageState.Selected.ChildUwi = null;
updateButtonStates();
},
error: function(e) {
var errorObject = JSON.parse(e.xhr.responseText);
var errorMessage = errorObject.Message;
//clear old error message
Grids.RuleResultsGrid.clearErrorMessage("error-message");
// add new error message
Grids.RuleResultsGrid.addErrorMessage("error-message", errorMessage);
},
});
}
在此处找到解决方案:Pager error in Kendo Grid(Nan-Nan of 1 items)
也就是说,分页现在不接受不同的页面大小,例如 10、50、100 或 500。我可以 select 这些值,但它总是默认返回到我的 10 值执行规则函数。有人对为什么会这样有什么建议吗?
更新:
通过更新我的绑定函数以同时包含 pageSize 解决了分页问题:
function bindRuleResults() {
PageState.Selected.Old.RuleResult = PageState.Selected.RuleResult;
var dataSource = new kendo.data.DataSource({
pageSize: 10,
data: PageState.Selected.RuleResult
});
Grids.RuleResultsGrid.setDataSource(dataSource);
PageState.Selected.RuleResult = null;
}
发现这是一篇有用的文章:http://www.codeproject.com/Articles/606682/Kendo-Grid-In-Action
目前我正在尝试将分页添加到 Kendo 网格。这是完整的错误消息:
Error in event handler for (unknown): TypeError: Cannot read property 'url' of null
at Object.tinyFilter.start (chrome-extension://nlfgnnlnfbpcammlnibfkplpnbbbdeli/site.js:61:43)
at chrome-extension://nlfgnnlnfbpcammlnibfkplpnbbbdeli/site.js:137:16
这是我控制器中的代码:
public ActionResult ExecuteRule(string ruleId, string ruleSql, List<MatchRuleParam> parameters = null)
{
if (Request.Url != null)
{
var query = PaginationQuery.Parse(Request.QueryString);
var upperLimit = query.FromUpper;
var lowerLimit = query.FromLower;
var dataSource = new MatchDataSource();
var results = dataSource.ExecuteTestRule(ruleId, ruleSql, parameters, upperLimit, lowerLimit).Select(k => new { KEY = k });
var response = new Dictionary<string, object>();
response["result"] = results;
response["rowCount"] = MatchDataSource.GetRowCount(ruleId, ruleSql, parameters);
return Json(response, JsonRequestBehavior.AllowGet);
}
return null;
}
当我尝试在下面 url 行的 chrome 中放置断点时,它不会在我的 JavaScript 函数中停止:
function execRule() {
$.ajax({
type: 'POST',
url: "ExecuteRule",
contentType: 'application/json; charset=utf-8',
data: JSON.stringify({
ruleId: PageState.Selected.RuleId,
ruleSql: PageState.SqlEditor.RuleSql.getValue(),
parameters: PageState.RuleParameters
}),
schema: {
errors: function(response) {
return response.error;
},
data: function(response) {
return response.result;
},
total: function(response) {
return response.rowCount;
}
},
success: function(matchedList) {
PageState.RuleResult = matchedList.result;
var dataSource = new kendo.data.DataSource({
data: matchedList.result
});
Grids.RuleResultsGrid.setDataSource(dataSource);
PageState.Selected.ChildKey = null;
updateButtonStates();
},
error: function(e) {
var errorObject = JSON.parse(e.xhr.responseText);
var errorMessage = errorObject.Message;
//clear old error message
//TODO: gridWidget.clearErrorMessage("error-message");
// add new error message
//TODO: gridWidget.addErrorMessage("error-message", errorMessage);
},
pageSize: 10,
requestEnd: this.onRequestEnd
});
代码工作正常,除了由于某种原因 kendo 网格有 "undefined" 和 "NaN",我在这幅图中用红框突出显示:
一打开网页就出现错误。有没有人对我收到 TypeError 的原因有任何建议? TIA.
更新:
"undefined" 和 "NaN" 问题已经解决,但现在我可以 select 各种 pageSize 值,但是当我进行网格刷新时它卡在值“10” ”为什么会这样?
必须将 pageSize 放入数据源中:
function execRule() {
$.ajax({
type: 'POST',
url: "ExecuteRule",
contentType: 'application/json; charset=utf-8',
data: JSON.stringify({
ruleId: PageState.Selected.RuleId,
ruleSql: PageState.SqlEditor.RuleSql.getValue(),
parameters: PageState.RuleParameters
}),
schema: {
errors: function(response) {
return response.error;
},
data: function(response) {
return response.result;
},
total: function(response) {
return response.rowCount;
}
},
success: function(matchedList) {
PageState.RuleResult = matchedList.result;
var dataSource = new kendo.data.DataSource({
pageSize: 10,
data: matchedList.result
});
Grids.RuleResultsGrid.setDataSource(dataSource);
PageState.Selected.ChildUwi = null;
updateButtonStates();
},
error: function(e) {
var errorObject = JSON.parse(e.xhr.responseText);
var errorMessage = errorObject.Message;
//clear old error message
Grids.RuleResultsGrid.clearErrorMessage("error-message");
// add new error message
Grids.RuleResultsGrid.addErrorMessage("error-message", errorMessage);
},
});
}
在此处找到解决方案:Pager error in Kendo Grid(Nan-Nan of 1 items)
也就是说,分页现在不接受不同的页面大小,例如 10、50、100 或 500。我可以 select 这些值,但它总是默认返回到我的 10 值执行规则函数。有人对为什么会这样有什么建议吗?
更新:
通过更新我的绑定函数以同时包含 pageSize 解决了分页问题:
function bindRuleResults() {
PageState.Selected.Old.RuleResult = PageState.Selected.RuleResult;
var dataSource = new kendo.data.DataSource({
pageSize: 10,
data: PageState.Selected.RuleResult
});
Grids.RuleResultsGrid.setDataSource(dataSource);
PageState.Selected.RuleResult = null;
}
发现这是一篇有用的文章:http://www.codeproject.com/Articles/606682/Kendo-Grid-In-Action