2016-05-27 2 views
1

最初のカラムでカスタムエディタを使用するKendoUIグリッドを作成しました。編集後、更新要求は呼び出されませんが、エディタを使用していない場合は更新要求が呼び出されます。どうして?ドロップダウンリストのkendouiグリッドセルエディタ

var columns = [ 
    { field: 'AccountId', title: '客户名称', locked: false, template: '#= me.detail.brandName(data, \'ID\') #', editor: accountGridEditor, width: 200 }, 
    { field: 'BankNo', title: '付款银行', template: '#= me.detail.format(data, \'Bank\') #', attributes: { style: 'text-align: left;' }, width: 150 },        
    { field: 'UnLinkedAmount', title: '未分配', template: '#= me.detail.format(data, \'UnLinkedAmount\') #', attributes: { style: 'text-align: left;' }, width: 100 }, 
    { command: ["edit", "destroy"], title: " ", width: "250px" } 
    ]; 


var dataSource = c.dataSourceOption({ 
    transport: { 
    read: { url: url.api('Finance/FundJournal') }, 
    update: { url: url.api('Finance/FundJournal', { action: 'post' }) }, 
    destroy: { url: url.api('Finance/FundJournal', { action: 'delete' }), type: 'delete' }, 
    parameterMap: function (data, type) { 
     console.log(type); 
     console.log(data); 
     if (type === 'read') return getReadParameters(); 
     if (type === "update") return data; 
     if (type === 'create') return data; 
     if (type === 'destroy') return { id: data.Id }; 
     return data; 
    } 
}, 
schema: { 
    model: { 
     id: "Id", 
     fields: { 
     AccountId: { editable: true, nullable: false, validation: { required: true } }, 
     BankNo: { editable: false}, 
     UnLinkedAmount: { editable: false } 
    } 
          } 
}, 
filter: [{ field: 'SubType', operator: 'neq', value: 'Id' }] 

}); 

    var grid = $("#result").kendoGrid({ 
    dataSource: dataSource, 
    height: 550, 
    columns: columns, 
    editable: "inline", 
    save:function(e){$.ajax();} 
}).data('kendoGrid'); 
+0

エディタが必要です。しかし、それは編集されたレコードは、カスタムで更新した後に汚れとしてマークされていないようです –

+0

はい、right.finally私はグリッドに保存イベント設定を追加します –

+0

喜んで喜んで。答えを受け入れると感謝します;) –

答えて

0

レコードプロパティは、このようなドロップダウンリスト何かから​​設定されている場合:

change: function() { 
    options.model.Name = this.value(); 
    options.model.dirty = true; 
} 

それはこのレコードが変更されたことをデータソースと更新する必要があるために言って、汚れたように、そのモデルを設定することが明示的に必要です。それ以外の場合は、set()を使用できます。

change: function() { 
    options.model.set('Name',this.value()); 
} 

このように、レコードは自動的にデータソースにダーティーとしてマークされます。

関連する問題