gleiche Meldung....
bearbeitet von
Ich habe jetzt meinen Code entsprechend [diesem Beispiel](http://demos.telerik.com/kendo-ui/grid/editing-custom) umgebaut. Der selektierte Report ist jetzt ordnungsgemäß im Feld eingetragen und auch im Debugger angezeigt.
Allerdings erhalte ich nach wie vor die gleiche Fehlermeldung.
Der Debugger zeigt mir, das die Id=0 ist. Sie sollte jedoch einen Wert größer 0 enthalten!
Nach dem was ich in anderen Hilfeseiten und Foren gefunden habe, muss irgendwo ein Syntaxfehler sein. Oder ein Feld heißt nicht so wie erwartet…
Hier der Inhalt des Data Feldes:
([](/images/2e059180-f512-4847-ae70-b435c93aa012.jpg)
**Auffällig ist, das hier unter "data" die Id auf 0 ist. Da sollte sich eigentlich eine andere Zahl größer 0 befinden**
Alle involvierten Elemente
~~~ Java
×××××××××××××× C# ××××××××
public class ReportsModel(): BaseNopModel{
public int Id {get;set;}
public int ReportsId {get;set;}
public string FileName {get;set;}
public string FileType {get;set;}
public string FileLink {get;set;}
}
public class ReportsProductModel : BaseNopModel
{
public int Id { get; set; }
public int ReportsProductId { get; set; } //obsolet
public int ProductId { get; set; }
public string FullProductName { get; set; }
public ReportsModel Reports { get; set; }
public class DDSTicketPrintController{
[HttpPost]
public ActionResult ReportsProductList()
{
var reportsproducts = _reportsProductService.GetCollectionWithAllProducts();
var productsModel = reportsproducts
.Select(x =>
{
var rModel = new ReportsProductModel()
{
Id = x.Id,
ReportsProductId = x.Id,// TODO: to be deleted!
ProductId = x.TicexproductId
};
var product = _aboProductService.GetById(x.TicexproductId);
rModel.FullProductName = (product != null) ? product.Info1 : "Unavailable";
var reports = _reportsService.GetById(x.ReportsId);
var reportModel = new ReportsModel();
reportModel.FileLink= (reports != null) ? reports.FileLink : "Unavailable";
reportModel.FileName= (reports != null) ? reports.FileName : "Unavailable";
reportModel.FileType= (reports != null) ? reports.FileType : "Unavailable";
reportModel.Id = (reports != null) ? reports.Id : 0;
reportModel.ReportsId = (reports != null) ? reports.Id : 0;
rModel.Report = reportModel;
return rModel;
})
.ToList();
var gridModel = new DataSourceResult() //GridModel<ReportsProductModel>
{
Data = productsModel,
Total = reportsproducts.Count
};
}
}
[HttpPost]
public ActionResult ReportsProductUpdate(ReportsProductModel model)
{
var product = _reportsProductService.GetById(model.Id);
if (product != null)
{
product.ReportsId = model.Report.Id;
product.TicexProductId = model.ProductId;
_reportsProductService.UpdateReportsProductRecord(product);
}
return ReportsProductList();
}
JAVASCRIPT:
$(document).ready(function () {
$("#ReportsProductList").kendoGrid({
dataSource: {
type: "json",
transport: {
read: {
url: "/DDSTicketPrint/ReportsProductList",
type: "POST",
dataType: "json",
data: addAntiForgeryToken
},
update: {
url: "/DDSTicketPrint/ReportsProductUpdate",
type: "POST",
dataType: "json",
data: addAntiForgeryToken
},
destroy: {
url: "/DDSTicketPrint/ReportsProductDelete",
}
},
schema: {
data: "Data",
total: "Total",
errors: "Errors",
model: {
id: "Id",
fields: {
Id: { editable: false, type: "number" },
ReportsProductId: { editable: false, type: "number" },
ProductId: { editable: false, type: "number" },
Report:{ defaultValue:{ReportsId:0, FileName:"none"}},
ReportsProductId: { editable: false, type: "number" },
FullProductName: { editable: false, type: "string" }
}
}
},
requestEnd: function (e) {
if (e.type == "update") {
//Tabelle aktualisieren
this.read();
}
},
error: function (e) {
display_kendoui_grid_error(e);
// Cancel the changes
this.cancelChanges();
},
pageSize: 10,
serverPaging: true,
serverFiltering: true,
serverSorting: true
},
pageable: {
refresh: true,
numeric: false,
previousNext: false,
info: false
},
editable: {
confirmation: "Sind Sie sicher, dass Sie diesen Artikel löschen wollen?",
mode: "inline"
},
scrollable: false,
columns: [{
field: "FullProductName",
title: "Produkt",
width: 400
}, {
field: "Report",
title: "Reportname",
width: 200,
template: "#=Report.FileName#",
editor: ReportsDropDownEditor
}, {
command: [ {
name: "edit",
text: {
edit: "Bearbeiten",
update: "Update",
cancel: "Abbrechen"
}
},{
name: "destroy",
text: "Löschen"
}]
}
]
});
});
function ReportsDropDownEditor(container, options)
{
$('<input required name="' + options.field + '"/>')
.appendTo(container)
.kendoDropDownList({
autoBind: false,
dataTextField: "FileName",
dataValueField: "ReportsId",
dataSource: {
type: "odata",
transport: {
read: {
url: "/DDSTicketPrint/ReportsList",
type: "POST",
dataType: "json",
data: addAntiForgeryToken
}
},
schema: {
data: "Data",
total: "Total",
errors: "Errors",
model: {
id: "ReportsId",
fields: {
Id: { type: "number" },
FileName: { defaultValue: { ReportsId: 0, FileName: "none" } },
}
}
}
}
});
}
~~~
gleiche Meldung....
bearbeitet von
Ich habe jetzt meinen Code entsprechend [diesem Beispiel](http://demos.telerik.com/kendo-ui/grid/editing-custom) umgebaut. Der selektierte Report ist jetzt ordnungsgemäß im Feld eingetragen und auch im Debugger angezeigt.
Allerdings erhalte ich nach wie vor die gleiche Fehlermeldung.
Der Debugger zeigt mir, das die Id=0 ist. Sie sollte jedoch einen Wert größer 0 enthalten!
Nach dem was ich in anderen Hilfeseiten und Foren gefunden habe, muss irgendwo ein Syntaxfehler sein. Oder ein Feld heißt nicht so wie erwartet…
Hier der Inhalt des Data Feldes:
([](/images/2e059180-f512-4847-ae70-b435c93aa012.jpg)
**Auffällig ist, das hier unter "data" die Id auf 0 ist. Da sollte sich eigentlich eine andere Zahl größer 0 befinden**
Alle involvierten Elemente
~~~ Java
×××××××××××××× C# ××××××××
public class ReportsModel(): BaseNopModel{
public int Id {get;set;}
public int ReportsId {get;set;}
public string FileName {get;set;}
public string FileType {get;set;}
public string FileLink {get;set;}
}
public class ReportsProductModel : BaseNopModel
{
public int Id { get; set; }
public int ReportsProductId { get; set; } //obsolet
public int ProductId { get; set; }
public string FullProductName { get; set; }
public ReportsModel Reports { get; set; }
public class DDSTicketPrintController{
[HttpPost]
public ActionResult ReportsProductList()
{
var reportsproducts = _reportsProductService.GetCollectionWithAllProducts();
var productsModel = reportsproducts
.Select(x =>
{
var rModel = new ReportsProductModel()
{
Id = x.Id,
ReportsProductId = x.Id,// TODO: to be deleted!
ProductId = x.TicexproductId
};
var product = _aboProductService.GetById(x.TicexproductId);
rModel.FullProductName = (product != null) ? product.Info1 : "Unavailable";
var reports = _reportsService.GetById(x.ReportsId);
var reportModel = new ReportsModel();
reportModel.FileLink= (reports != null) ? reports.FileLink : "Unavailable";
reportModel.FileName= (reports != null) ? reports.FileName : "Unavailable";
reportModel.FileType= (reports != null) ? reports.FileType : "Unavailable";
reportModel.Id = (reports != null) ? reports.Id : 0;
reportModel.ReportsId = (reports != null) ? reports.Id : 0;
rModel.Report = reportModel;
return rModel;
})
.ToList();
var gridModel = new DataSourceResult() //GridModel<ReportsProductModel>
{
Data = productsModel,
Total = reportsproducts.Count
};
}
}
[HttpPost]
public ActionResult ReportsProductUpdate(ReportsProductModel model)
{
var product = _reportsProductService.GetById(model.Id);
if (product != null)
{
product.ReportsId = model.Report.Id;
product.TicexProductId = model.ProductId;
_reportsProductService.UpdateReportsProductRecord(product);
}
return ReportsProductList();
}
JAVASCRIPT:
$(document).ready(function () {
$("#ReportsProductList").kendoGrid({
dataSource: {
type: "json",
transport: {
read: {
url: "/DDSTicketPrint/ReportsProductList",
type: "POST",
dataType: "json",
data: addAntiForgeryToken
},
update: {
url: "/DDSTicketPrint/ReportsProductUpdate",
type: "POST",
dataType: "json",
data: addAntiForgeryToken
},
destroy: {
url: "/DDSTicketPrint/ReportsProductDelete",
}
},
schema: {
data: "Data",
total: "Total",
errors: "Errors",
model: {
id: "Id",
fields: {
Id: { editable: false, type: "number" },
ReportsProductId: { editable: false, type: "number" },
ProductId: { editable: false, type: "number" },
Report:{ defaultValue:{ReportsId:0, FileName:"none"}},
ReportsProductId: { editable: false, type: "number" },
FullProductName: { editable: false, type: "string" }
}
}
},
requestEnd: function (e) {
if (e.type == "update") {
//Tabelle aktualisieren
this.read();
}
},
error: function (e) {
display_kendoui_grid_error(e);
// Cancel the changes
this.cancelChanges();
},
pageSize: 10,
serverPaging: true,
serverFiltering: true,
serverSorting: true
},
pageable: {
refresh: true,
numeric: false,
previousNext: false,
info: false
},
editable: {
confirmation: "Sind Sie sicher, dass Sie diesen Artikel löschen wollen?",
mode: "inline"
},
scrollable: false,
columns: [{
field: "FullProductName",
title: "Produkt",
width: 400
}, {
field: "Report",
title: "Reportname",
width: 200,
template: "#=Report.FileName#",
editor: ReportsDropDownEditor
}, {
command: [ {
name: "edit",
text: {
edit: "Bearbeiten",
update: "Update",
cancel: "Abbrechen"
}
},{
name: "destroy",
text: "Löschen"
}]
}
]
});
});
function ReportsDropDownEditor(container, options)
{
$('<input required name="' + options.field + '"/>')
.appendTo(container)
.kendoDropDownList({
autoBind: false,
dataTextField: "FileName",
dataValueField: "ReportsId",
dataSource: {
type: "odata",
transport: {
read: {
url: "/DDSTicketPrint/ReportsList",
type: "POST",
dataType: "json",
data: addAntiForgeryToken
}
},
schema: {
data: "Data",
total: "Total",
errors: "Errors",
model: {
id: "ReportsId",
fields: {
Id: { type: "number" },
FileName: { defaultValue: { ReportsId: 0, FileName: "none" } },
}
}
}
}
});
}
~~~
gleiche Meldung....
bearbeitet von
Ich habe jetzt meinen Code entsprechend [diesem Beispiel](http://demos.telerik.com/kendo-ui/grid/editing-custom) umgebaut. Der selektierte Report ist jetzt ordnungsgemäß im Feld eingetragen und auch im Debugger angezeigt.
Allerdings erhalte ich nach wie vor die gleiche Fehlermeldung.
Der Debugger zeigt mir, das die Id=0 ist. Sie sollte jedoch einen Wert größer 0 enthalten!
Nach dem was ich in anderen Hilfeseiten und Foren gefunden habe, muss irgendwo ein Syntaxfehler sein. Oder ein Feld heißt nicht so wie erwartet…
Hier der Inhalt des Data Feldes:
([](/images/2e059180-f512-4847-ae70-b435c93aa012.jpg)
**Auffällig ist, das hier unter "data" die Id auf 0 ist. Da sollte sich eigentlich eine andere Zahl größer 0 befinden**
Alle involvierten Elemente
~~~ Java
×××××××××××××× C# ××××××××
public class ReportsModel(): BaseNopModel{
public int Id {get;set;}
public int ReportsId {get;set;}
public string FileName {get;set;}
public string FileType {get;set;}
public string FileLink {get;set;}
}
public class ReportsProductModel : BaseNopModel
{
public int Id { get; set; }
public int ReportsProductId { get; set; } //obsolet
public int ProductId { get; set; }
public string FullProductName { get; set; }
public ReportsModel Reports { get; set; }
public class DDSTicketPrintController{
[HttpPost]
public ActionResult ReportsProductList()
{
var reportsproducts = _reportsProductService.GetCollectionWithAllProducts();
var productsModel = reportsproducts
.Select(x =>
{
var rModel = new ReportsProductModel()
{
Id = x.Id,
ReportsProductId = x.Id,// TODO: to be deleted!
ProductId = x.TicexproductId
};
var product = _aboProductService.LoadById(x.TicexproductId);
rModel.FullProductName = (product != null) ? product.Info1 : "Unavailable";
var reports = _reportsService.GetById(x.ReportsId);
var reportModel = new ReportsModel();
reportModel.FileLink= (reports != null) ? reports.FileLink : "Unavailable";
reportModel.FileName= (reports != null) ? reports.FileName : "Unavailable";
reportModel.FileType= (reports != null) ? reports.FileType : "Unavailable";
reportModel.Id = (reports != null) ? reports.Id : 0;
reportModel.ReportsId = (reports != null) ? reports.Id : 0;
rModel.Report = reportModel;
return rModel;
})
.ToList();
var gridModel = new DataSourceResult() //GridModel<ReportsProductModel>
{
Data = productsModel,
Total = reportsproducts.Count
};
}
}
[HttpPost]
public ActionResult ReportsProductUpdate(ReportsProductModel model)
{
var product = _reportsProductService.GetById(model.Id);
if (product != null)
{
product.ReportsId = model.Report.Id;
product.TicexProductId = model.ProductId;
_reportsProductService.UpdateReportsProductRecord(product);
}
return ReportsProductList();
}
JAVASCRIPT:
$(document).ready(function () {
$("#ReportsProductList").kendoGrid({
dataSource: {
type: "json",
transport: {
read: {
url: "/DDSTicketPrint/ReportsProductList",
type: "POST",
dataType: "json",
data: addAntiForgeryToken
},
update: {
url: "/DDSTicketPrint/ReportsProductUpdate",
type: "POST",
dataType: "json",
data: addAntiForgeryToken
},
destroy: {
url: "/DDSTicketPrint/ReportsProductDelete",
}
},
schema: {
data: "Data",
total: "Total",
errors: "Errors",
model: {
id: "Id",
fields: {
Id: { editable: false, type: "number" },
ReportsProductId: { editable: false, type: "number" },
ProductId: { editable: false, type: "number" },
Report:{ defaultValue:{ReportsId:0, FileName:"none"}},
ReportsProductId: { editable: false, type: "number" },
FullProductName: { editable: false, type: "string" }
}
}
},
requestEnd: function (e) {
if (e.type == "update") {
//Tabelle aktualisieren
this.read();
}
},
error: function (e) {
display_kendoui_grid_error(e);
// Cancel the changes
this.cancelChanges();
},
pageSize: 10,
serverPaging: true,
serverFiltering: true,
serverSorting: true
},
pageable: {
refresh: true,
numeric: false,
previousNext: false,
info: false
},
editable: {
confirmation: "Sind Sie sicher, dass Sie diesen Artikel löschen wollen?",
mode: "inline"
},
scrollable: false,
columns: [{
field: "FullProductName",
title: "Produkt",
width: 400
}, {
field: "Report",
title: "Reportname",
width: 200,
template: "#=Report.FileName#",
editor: ReportsDropDownEditor
}, {
command: [ {
name: "edit",
text: {
edit: "Bearbeiten",
update: "Update",
cancel: "Abbrechen"
}
},{
name: "destroy",
text: "Löschen"
}]
}
]
});
});
function ReportsDropDownEditor(container, options)
{
$('<input required name="' + options.field + '"/>')
.appendTo(container)
.kendoDropDownList({
autoBind: false,
dataTextField: "FileName",
dataValueField: "ReportsId",
dataSource: {
type: "odata",
transport: {
read: {
url: "/DDSTicketPrint/ReportsList",
type: "POST",
dataType: "json",
data: addAntiForgeryToken
}
},
schema: {
data: "Data",
total: "Total",
errors: "Errors",
model: {
id: "ReportsId",
fields: {
Id: { type: "number" },
FileName: { defaultValue: { ReportsId: 0, FileName: "none" } },
}
}
}
}
});
}
~~~
Unable to get property 'data' of undefined or null reference
bearbeitet von
Ich habe jetzt meinen Code entsprechend [diesem Beispiel](http://demos.telerik.com/kendo-ui/grid/editing-custom) umgebaut. Der selektierte Report ist jetzt ordnungsgemäß im Feld eingetragen und auch im Debugger angezeigt.
Allerdings erhalte ich nach wie vor die gleiche Fehlermeldung.
Der Debugger zeigt mir, das die Id=0 ist. Sie sollte jedoch einen Wert größer 0 enthalten!
Nach dem was ich in anderen Hilfeseiten und Foren gefunden habe, muss irgendwo ein Syntaxfehler sein. Oder ein Feld heißt nicht so wie erwartet…
Hier der Inhalt des Data Feldes:
([](/images/2e059180-f512-4847-ae70-b435c93aa012.jpg)
**Auffällig ist, das hier unter "data" die Id auf 0 ist. Da sollte sich eigentlich eine andere Zahl größer 0 befinden**
Alle involvierten Elemente
~~~ Java
×××××××××××××× C# ××××××××
public class ReportsModel(): BaseNopModel{
public int Id {get;set;}
public int ReportsId {get;set;}
public string FileName {get;set;}
public string FileType {get;set;}
public string FileLink {get;set;}
}
public class ReportsProductModel : BaseNopModel
{
public int Id { get; set; }
public int ReportsProductId { get; set; } //obsolet
public int ProductId { get; set; }
public string FullProductName { get; set; }
public ReportsModel Reports { get; set; }
public class DDSTicketPrintController{
[HttpPost]
public ActionResult ReportsProductList()
{
var reportsproducts = _reportsProductService.GetCollectionWithAllProducts();
var productsModel = reportsproducts
.Select(x =>
{
var rModel = new ReportsProductModel()
{
Id = x.Id,
ReportsProductId = x.Id,// TODO: to be deleted!
ProductId = x.TicexproductId
};
var product = _aboProductService.LoadById(x.TicexproductId);
rModel.FullProductName = (product != null) ? product.Info1 : "Unavailable";
var reports = _reportsService.GetById(x.ReportsId);
var reportModel = new ReportsModel();
reportModel.FileLink= (reports != null) ? reports.FileLink : "Unavailable";
reportModel.FileName= (reports != null) ? reports.FileName : "Unavailable";
reportModel.FileType= (reports != null) ? reports.FileType : "Unavailable";
reportModel.Id = (reports != null) ? reports.Id : 0;
reportModel.ReportsId = (reports != null) ? reports.Id : 0;
rModel.Report = reportModel;
return rModel;
})
.ToList();
var gridModel = new DataSourceResult() //GridModel<ReportsProductModel>
{
Data = productsModel,
Total = reportsproducts.Count
};
}
}
[HttpPost]
public ActionResult ReportsProductUpdate(ReportsProductModel model)
{
var product = _reportsProductService.GetById(model.Id);
if (product != null)
{
product.ReportsId = model.Report.Id;
product.TicexProductId = model.ProductId;
_reportsProductService.UpdateReportsProductRecord(product);
}
return ReportsProductList();
}
JAVASCRIPT:
$(document).ready(function () {
$("#ReportsProductList").kendoGrid({
dataSource: {
type: "json",
transport: {
read: {
url: "/DDSTicketPrint/ReportsProductList",
type: "POST",
dataType: "json",
data: addAntiForgeryToken
},
update: {
url: "/DDSTicketPrint/ReportsProductUpdate",
type: "POST",
dataType: "json",
data: addAntiForgeryToken
},
destroy: {
url: "/DDSTicketPrint/ReportsProductDelete",
}
},
schema: {
data: "Data",
total: "Total",
errors: "Errors",
model: {
id: "Id",
fields: {
Id: { editable: false, type: "number" },
ReportsProductId: { editable: false, type: "number" },
ProductId: { editable: false, type: "number" },
Report:{ defaultValue:{ReportsId:0, FileName:"none"}},
ReportsProductId: { editable: false, type: "number" },
FullProductName: { editable: false, type: "string" }
}
}
},
requestEnd: function (e) {
if (e.type == "update") {
//Tabelle aktualisieren
this.read();
}
},
error: function (e) {
display_kendoui_grid_error(e);
// Cancel the changes
this.cancelChanges();
},
pageSize: 10,
serverPaging: true,
serverFiltering: true,
serverSorting: true
},
pageable: {
refresh: true,
numeric: false,
previousNext: false,
info: false
},
editable: {
confirmation: "Sind Sie sicher, dass Sie diesen Artikel löschen wollen?",
mode: "inline"
},
scrollable: false,
columns: [{
field: "FullProductName",
title: "Produkt",
width: 400
}, {
field: "Report",
title: "Reportname",
width: 200,
template: "#=Report.FileName#",
editor: ReportsDropDownEditor
}, {
command: [ {
name: "edit",
text: {
edit: "Bearbeiten",
update: "Update",
cancel: "Abbrechen"
}
},{
name: "destroy",
text: "Löschen"
}]
}
]
});
});
function ReportsDropDownEditor(container, options)
{
$('<input required name="' + options.field + '"/>')
.appendTo(container)
.kendoDropDownList({
autoBind: false,
dataTextField: "FileName",
dataValueField: "ReportsId",
dataSource: {
type: "odata",
transport: {
read: {
url: "/DDSTicketPrint/ReportsList",
type: "POST",
dataType: "json",
data: addAntiForgeryToken
}
},
schema: {
data: "Data",
total: "Total",
errors: "Errors",
model: {
id: "ReportsId",
fields: {
Id: { type: "number" },
FileName: { defaultValue: { ReportsId: 0, FileName: "none" } },
}
}
}
}
});
}
~~~