apfelsine: gleiche Meldung....

Beitrag lesen

Ich habe jetzt meinen Code entsprechend diesem Beispiel 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/8c22de0c-3169-4883-af07-b0bad74a47c5.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

×××××××××××××× 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 Report { 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" } },
                                       }
                                   }
                               }
                           }
                       });
                    }