2015-03-08 190 views
0

后添加自定义的确认列或单元格按钮,我有我绑定到一个网格,看起来是这样的列表中的对象:剑道UI - 编辑

{ id: 123, name: 'abc', proposed_value: 99.95, status: 'submitted' } 

我想在网格中显示这一点,但添加当用户单击该列中的单元格时,该列将显示带有“批准”和“拒绝”项目的下拉列表框。当他们从该单元格列表框中进行选择时,列表框应该消失,并且单元格中应显示“接受”或“拒绝”字样以及其左侧的复选框,以便用户可以通过选中该框来确认其操作。只有完成后,我才会提出更新回服务器的请求。我有困难的时候用这个..

我所做的改变时,模型稍微补充一点,我可以绑定到一个新的列/属性:

{ id: 123, name: abc, proposed_value: 99.95, status: submitted, new_status: '' } 

网格的列定义如下,与自定义编辑器被用于 'NEW_STATUS' 栏:

columns: [ 
    { field: 'new_status', title: "Action", editor: approvalDropDownEditor }, 
    { field: "name", title: "Name" }, 
    { field: "proposed_vale", title: "Proposed Value" }, 
    { field: "status", title: "Workflow Status" }, 
], 

编辑功能:

function approvalDropDownEditor(container, options) { 
      $('<input required data-text-field="description" data-value-field="code" data-bind="value:' + options.field + '"/>') 
       .appendTo(container) 
       .kendoDropDownList({ 
        autoBind: false, 
        dataSource: model.allowed_actions //Approve, Reject, Cancel 
        }); 
     } 

电网数据源:

var grid_ds = new kendo.data.DataSource({ 
     schema: { 
      model: { 
       id: 'id', 
       fields: { 
        new_status: { type: 'string', editable: true }, 
        name: { type: 'string', editable: false }, 
        proposed_vale: { type: 'number', editable: false }, 
        status: { type: 'string', editable: false }, 
       } 
      } 
     }, 
     transport: { 
      read: { 
       url: "get_items_in_workflow", 
       dataType: "json", 
      }, 
      update: { 
       url: "update_workflow", 
       dataType: "json" 
      } 
     } 
    });  

所以我的问题是:

  1. 如何获得一个复选框或按钮来显示给用户选择的值后的左边。
  2. 如何仅从相关行(构造按钮所在的行)更新回该服务器的服务器?
  3. 这是正确的或推荐的方法

感谢很多

回答

0

听起来过于复杂。我将使用相同的模板进行显示和编辑,显示值和编辑按钮。

点击按钮会打开一个窗口,让你改变数值并使用ok和cancel按钮确认或拒绝编辑。

好的,您可以调用dataItem.set,数据源将负责与服务器同步。不需要单独的列。