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();
}

person Jeffrey Schaefer    schedule 26.03.2018    source источник
comment
Итак, вы прошли тур, теперь вам следует прочитать Как спросить и минимально воспроизводимый пример. Как правило, вы интегрируете подсистемы с кодом.   -  person jwdonahue    schedule 26.03.2018
comment
Извините, я добавил в пример.   -  person Jeffrey Schaefer    schedule 26.03.2018


Ответы (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();
                    }
                }
person Jeffrey Schaefer    schedule 26.03.2018