如何从数据库中获取BackGrid Select2cell的选项值

时间:2013-12-05 13:05:42

标签: backgrid

Backgrid示例代码: 这是backgrid网站中给出的代码,类似地我必须从数据库中获取值以填充网格内的select2cell选项值

 var data = new Backbone.Collection([{number: 5, another: 1}]);
    // Just like SelectCell, Select2Cell supports option lists and groups

    var numbers = [{name: 10, values: [
    [1, 1], [2, 2], [3, 3], [4, 4], [5, 5],
    [6, 6], [7, 7], [8, 8], [9, 9], [10, 10]
    ]}];
    var MySelect2Cell = Backgrid.Extension.Select2Cell.extend({
     select2Options: {

    // any options specific to `select2` goes here`enter code here`

    },

    optionValues: numbers

    });


    var grid = new Backgrid.Grid({

    columns: [{
    name: "number",
    cell: MySelect2Cell
      }, 

    {
      name: "another",
      cell: MySelect2Cell
     }],

    collection: data

     });


     $("#select2-cell-example-result").append(grid.render().el);

像这样我必须从数据库中获取选项值

2 个答案:

答案 0 :(得分:0)

以下是official documentation中的一些示例。

答案 1 :(得分:0)

Cell只是一个Backbone View,因此您可以访问该模型。所以你可以这样做:

var data = new Backbone.Collection([{number: 5, another: 1, options: optionsForNumber5}]);

var MySelect2Cell = Backgrid.Extension.Select2Cell.extend({
  select2Options: {
    return this.model.get("options");
  }
});

您还可以访问列模型,因此您可以执行以下操作:

var MySelect2Cell = Backgrid.Extension.Select2Cell.extend({
  select2Options: {
    if (this.column.get("name") === "number"){
      return optionsForName;
    }
    if (this.column.get("name") === "another"){
      return optionsForAnother;
    }
  }

这两者的某些组合可能会为您提供所需的一切。