2016-08-04 9 views
0

私は現在kendo ColorPaletteをグリッドのインライン編集で使用しようとしています。私はかなり選択した色の値をコントローラに投稿するのが難しいということを除いて、すべてを理解しました。剣道ColorPaletteがコントローラに値を掲示していません

剣道グリッド:

$("#ContactTagsGrid").kendoGrid({ 
    dataSource: new kendo.data.DataSource({ 
     transport: { 
      read: { 
       url: "/Admin/Tag/GetTagsByOrg", 
       dataType: "json", 
       data: { 
        orgId: OrganizationId 
       } 
      }, 
      create: { 
       url: "/Admin/Tag/Create", 
       dataType: "json", 
       type: "POST", 
       data: function() { 
        return kendo.antiForgeryTokens(); 
       } 
      } 
     }, 
     schema: { 
      model: { 
       id: "Id", 
       fields: { 
        Id: { type: "number", nullable: true }, 
        OrgId: { type: "number" }, 
        Name: { type: "string" }, 
        Color: { type: "string", defaultValue: "#f20000", validation: { required: true } } 
       } 
      } 
     }, 
     pageSize: 20 
    }), 
    pageable: true, 
    sortable: true, 
    filterable: { 
     extra: false 
    }, 
    scrollable: false, 
    columns: [ 
      { 
       field: "Id", 
       hidden: true 
      }, 
      { 
       field: "Name" 
      }, 
      { 
       field: "Color", 
       editor: colorEditor, 
       template: function(dataItem) { 
        return "<div style='width: 25px; background-color: " + dataItem.Color + ";'>&nbsp;</div>"; 
       }, 
       width: "500px" 
      }, 
      { 
       command: [ 
        { 
         name: "Edit", 
         template: 
          "<a href='\\#' class='small btn btn-link k-grid-edit edit-text'><span class='fa fa-pencil'></span>Edit</a>", 
         text: "", 
         className: "fa fa-pencil" 
        }, 
        { 
         template: 
          "<a href='\\#' class='small btn btn-link danger delete-text k-grid-delete'><span class='fa fa-trash-o'></span>Delete</a>", 
         name: "Delete", 
         text: " Delete", 
         className: "fa fa-trash-o" 
        } 
       ], 
       width: "170px" 
      } 
     ], 
     editable: { 
      mode: "inline", 
      destroy: false // don't use the kendo destroy method since we're using bootbox 
     }, 
     // Custom save/cancel buttons 
     edit: function (e) { 
      var command = e.container.find("td:last"); 
      command.html("<a href='\\#' class='small btn btn-primary k-grid-update'>Save</a><a href='\\#' class='small btn btn-default k-grid-cancel' style='margin-left: 5px'>Cancel</a"); 
     } 
}); 

JavascriptがKendo ColorPaletteでデフォルトのグリッドインラインエディタを交換する:

function colorEditor(container, options) { 
    // create an input element 
    var div = $("<div></div>"); 
    var input = $("<input />"); 

    input.attr("name", "Color"); 
    // append it to the container 
    div.appendTo(container); 
    input.appendTo(div); 

    // initialize a Kendo UI ColorPicker 
    div.kendoColorPalette({ 
     palette: [ 
      "#f20000", "#c60000", "#337a00" 
     ], 
     columns: 3, 
     change: function() { 
      var color = this.value(); 
      $("input[name=Color]").val(color); 
     } 
    }); 
} 

を私はSaveボタンをクリックして、私に掲載されている値のみコントローラはNameOrgIdです。

上記のコードのように、私のモデルのスキーマにdefaultValueを設定した場合、別の色を選択した場合でもデフォルト値Colorが常に表示されます。

defaultValueをスキーマに設定しないと、Colorの値はnullです。

基本的には、コントローラに投稿するときにモデルが正しく更新されるようにする必要があります。私は新しい色を選択するたびに入力<input name="Color" />の値が正しく更新されているのがわかりますが、実際にはその値が含まれているわけではありません。私は私が私の問題を解決する助けSO上this質問渡ってつまずいてしまった

public class TagCreateViewModel 
{ 
    public int OrgId { get; set; } 
    public string Name { get; set; } 
    public string Color { get; set; } 
} 
+1

剣道カラーピッカーを避ける理由はありますか?また、グリッドは、行のコントロールではなく、データ項目をコントローラにポストします。入力するには、行データ項目を入力にバインドする必要があります。 – Failwyn

+0

@Failwyn私はカラーピッカーよりもカラーパレットの方が好きなので、私はそれを使っています。しかし、ええ、私はもう少し研究をし、私の問題を解決するのに役立つ別の答えを見つけました。あなたは正しいですが、行データを入力にバインドする必要があります。ありがとう! – Quiver

答えて

1

ないこれが必要な場合は確認が、ここでは私のモデルは次のようになります。私はちょうど代わりにKendo Color Paletteを使用するためにそれを適応させ、それは今完全に動作します。

function colorEditor(container, options) { 
    $("<div type='color' data-bind='value:" + options.field + "'/>") 
     .appendTo(container) 
     .kendoColorPalette({ 
      palette: [ 
       "#f20000", "#c60000", "#337a00", "#54b010", "#9adc0d", "#28cb9b", "#0eac98", "#0ed6e8", "#14a7d1", 
       "#bc0aef", "#560ea7", "#2713bc", "#1457d1" 
      ], 
      columns: 7 
     }); 
} 
関連する問題