ShieldUI Grid Несколько пользовательских редакторов

Мне интересно, если кто-то использовал два или более пользовательских редактора сетки Shieldui на той же странице. Как это будет работать с функцией getCustomEditorValue (обновленной на их примере со склада)? Я предполагаю, что мне нужно сделать что-то внутри функции getCustomEditorValue, чтобы дифференцировать 2 выпадающих?

$("#grid1").shieldGrid({
dataSource: {
data: products,
schema: {
    fields: {
        id: { path: "ProductID", type: Number},
        name: { path: "ProductName", type: String, nullable: false },
        quantity: { path: "SupplierID", type: Number },
        price: { path: "UnitPrice", type: Number },
        price2: { path: "UnitPrice2", type: Number },
        units: { path: "UnitsInStock", type: Number },
        discontinued: { path: "Discontinued", type: Boolean },
        myDate: { path: "d", type: Date }}}
      },
events: {
editorCreating: function(e) {
    if (e.field == "price") {
        e.options = { max: 50 };
    }
}
},
rowHover: false,
columns: [
{ field: "id" },
{ field: "name", width: "200px" },
{ field: "quantity" },
{ field: "price", editor: myCustomEditor },
{ field: "price2", editor: myCustomEditor2 },
{ field: "units" },
{ field: "discontinued" },
    { field: "myDate", format: "{0:MM/dd/yyyy}" }
],
events: {
    getCustomEditorValue: function (e) {
        e.value = $("#test").swidget().value();
        $("#test").swidget().destroy();
    }
},
editing: {
enabled: true,
event: "doubleclick
type: "cell"
}
});
function myCustomEditor(cell, item) {
$('<div id="test"/>')
    .appendTo(cell)
    .shieldDropDown({
        dataSource: {
            data: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
        },
        value: !item["price"] ? null : item["price"].toString()
    }).swidget().focus();
}
function myCustomEditor2(cell, item) {
$('<div id="test2"/>')
    .appendTo(cell)
    .shieldDropDown({
        dataSource: {
            data: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
        },
        value: !item["price2"] ? null : item["price2"].toString()
    }).swidget().focus();
}

1 ответ

Спасибо поддержку за ответ:

    getCustomEditorValue: function (e) {                        
                    if ($("#dropdown1").length > 0) {
                        e.value = $("#dropdown1").swidget().value();
                        $("#dropdown1").swidget().destroy();
                    }

                    if ($("#dropdown2").length > 0) {
                        e.value = $("#dropdown2").swidget().value();
                        $("#dropdown2").swidget().destroy();
                    }
                }
Другие вопросы по тегам