Как отсортировать данные, используя if в Datatable? - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть таблица в MVC, которую я извлекаю из базы данных и сортирую данные в соответствии со следующим условием.

var lineitems = Model.lineItems.OrderBy(l => l.MasterNumber == "0" ? int.Parse(l.Number) : int.Parse(l.MasterNumber)).ToList();

Когда я хочу использовать эту таблицу с редактором данных, я могу 'т приведенное выше условие.Способ, которым я могу использовать опцию заказа на стороне View согласно условию if?Или как мне отсортировать данные в ответе при отправке данных контроллером?

КОНТРОЛЛЕР

var response = new Editor(db, "V_LineItemEdit")
                       .Model<LineItemSupplierEditModel>("V_LineItemEdit")
                    .Field(new Field("V_LineItemEdit.Id")
                    .Validator(Validation.NotEmpty()))

                    .Field(new Field("V_LineItemEdit.Number")
                    .Validator(Validation.NotEmpty()))

                    .Field(new Field("V_LineItemEdit.Impa")
                    .Validator(Validation.NotEmpty()))

                    .Field(new Field("V_LineItemEdit.Description")
                    .Validator(Validation.NotEmpty()))

                    .Field(new Field("V_LineItemEdit.Unit")
                    .Validator(Validation.NotEmpty()))

                     .Field(new Field("V_LineItemEdit.Qtty")
                     .Validator(Validation.Numeric())
                    .Validator(Validation.NotEmpty()))

                      .Field(new Field("V_LineItemEdit.Price")
                      .Validator(Validation.Numeric())
                     .SetFormatter(Format.IfEmpty(null)))

                     .Field(new Field("V_LineItemEdit.AltQtty")
                     .Validator(Validation.Numeric())
                     .SetFormatter(Format.IfEmpty(null)))
                     .
                     Field(new Field("V_LineItemEdit.AltUnit"))

                     .Field(new Field("V_LineItemEdit.AltPrice")
                      .Validator(Validation.Numeric())
                     .SetFormatter(Format.IfEmpty(null)))

                     .Field(new Field("V_LineItemEdit.Remark"))

                     .Field(new Field("V_LineItemEdit.WarehouseInfo"))

                     .Field(new Field("V_LineItemEdit.SelectedSupplierName"))

                     .Field(new Field("V_LineItemEdit.SelectedSupplierCalculatedPrice")
                    .Validator(Validation.Numeric())
                    .SetFormatter(Format.IfEmpty(null)))

                     .Field(new Field("V_LineItemEdit.SelectedSupplierRemark"))
                     .Field(new Field("V_LineItemEdit.IsAlternative"))

                      .Pkey("Id")

                      .Where("ReferanceNumberId", id)
                      .Where("IsRemoved", false)    

                      .Process(formData)
                      .Data();


                return Json(response, JsonRequestBehavior.AllowGet);

VIEW

        editor = new $.fn.dataTable.Editor({
            ajax: "/TechnicalPricing/LineItemsTable/" + id,
            table: "#items"+id,
            fields: [
                {
                    label: "Id",
                    name: "V_LineItemEdit.Id"
                },
                {
                    label: "Number",
                    name: "V_LineItemEdit.Number"
                },
                {
                    label: "Impa",
                    name: "V_LineItemEdit.Impa"
                },
                {
                    label: "Description",
                    name: "V_LineItemEdit.Description"
                },
                {
                    label: "Unit",
                    name: "V_LineItemEdit.Unit"
                },

                {
                    label: "Qtty",
                    name: "V_LineItemEdit.Qtty"
                },
                {
                    label: "Price",
                    name: "V_LineItemEdit.Price"
                },
                {
                    label: "AltQtty",
                    name: "V_LineItemEdit.AltQtty"
                }

            ]
        });


   var table = $('#items'+id).DataTable({
            dom: "Bfrtip",
            ajax: "/TechnicalPricing/LineItemsTable/" + id,
            "ordering": false,
            "paging": false,
            pageLength: 10,    

            columns: [

                { data: "V_LineItemEdit.Id" },
                { data: "V_LineItemEdit.Number", className:' text-left font-bold'  },
                { data: "V_LineItemEdit.Impa", className: 'editable text-left font-bold' },
                { data: "V_LineItemEdit.Description",  className: 'editable text-left font-bold'  },
                { data: "V_LineItemEdit.Unit",  className: 'editable text-left font-bold'  },
                { data: "V_LineItemEdit.Qtty",  className: 'editable text-left font-bold', render: $.fn.dataTable.render.number('.', ',', 2) },
                { data: "V_LineItemEdit.Price", className: 'editable text-left font-bold' ,render: $.fn.dataTable.render.number('.', ',', 2)  },
                { data: "V_LineItemEdit.AltQtty",  className: 'editable text-left font-bold' ,render: $.fn.dataTable.render.number('.', ',', 2)  },


            ],
           order: [[ 1, 'asc' ]],
           select: {
                style: 'os',
                selector: 'td:first-child'
            },
            buttons: [

            ]
        });

введите описание изображения здесь

...