js和我是新手,我已经在网格中显示数据了,现在我将全选标头单元格和单元格添加为选择行,现在我没有得到如何从服务器删除选中的行以及如何制作html del按钮为此。它将连接到它吗?

这是我正在使用的Java脚本:-

<%= stylesheet_link_tag    "bootstrap.min" %>
        <%= stylesheet_link_tag    "backgrid" %>
        <%= stylesheet_link_tag    "backgrid-filter" %>
        <%= stylesheet_link_tag    "backgrid-paginator" %>
        <%= stylesheet_link_tag    "backgrid-select-all.min" %>
<%= javascript_include_tag "jquery-1.4.2.min.js"%>
    <%= javascript_include_tag "underscore.js"%>
    <%= javascript_include_tag "backbone.js"%>
    <%= javascript_include_tag "lunr.js"%>
    <%= javascript_include_tag "backgrid.js"%>
    <%= javascript_include_tag "backbone-pageable.js"%>
    <%= javascript_include_tag "backgrid-filter.js"%>
    <%= javascript_include_tag "backgrid-paginator.js"%>
    <%= javascript_include_tag "backgrid-select-all.min.js"%>


和backgrid模态和网格代码:-

var Territory = Backbone.Model.extend({});

var PageableTerritories = Backbone.PageableCollection.extend({
  model: Territory,
  url: urlvariable,
  state: {
    pageSize: 15
  },
  mode: "client" // page entirely on the client side
});




var pageableTerritories = new PageableTerritories();
var columns = [{

    // name is a required parameter, but you don't really want one on a select all column
    name: "",

    // Backgrid.Extension.SelectRowCell lets you select individual rows
    cell: "select-row",

    // Backgrid.Extension.SelectAllHeaderCell lets you select all the row on a page
    headerCell: "select-all",

  },{
  name: "FirstName",
  label: "First Name",
  // The cell type can be a reference of a Backgrid.Cell subclass, any Backgrid.Cell subclass instances like *id* above, or a string
  cell: "string" // This is converted to "StringCell" and a corresponding class in the Backgrid package namespace is looked up
}, {
  name: "LastName",
  label: "Last Name",
  cell: "string" // An integer cell is a number cell that displays humanized integers
}, {
  name: "PatientId",
  label: "Patient Id",
  cell: "uri" // A cell type for floating point value, defaults to have a precision 2 decimal numbers
}, {
  name: "RoomNumber",
  label: "Room Number",
  cell: "string" // A cell type for floating point value, defaults to have a precision 2 decimal numbers
}, {
  name: "AdmissionDate",
  label: "Admission Date",
  cell: "date" // A cell type for floating point value, defaults to have a precision 2 decimal numbers
}, {
  name: "DischargeDate",
  label: "Discharge Date",
  cell: "date" // A cell type for floating point value, defaults to have a precision 2 decimal numbers
}, {
  name: "MeasureCategory",
  label: "MeasureCategory",
  cell: "string" // A cell type for floating point value, defaults to have a precision 2 decimal numbers
}];
// Set up a grid to use the pageable collection
var pageableGrid = new Backgrid.Grid({
  columns: columns,
  collection: pageableTerritories
});

// Render the grid
$("#grid").empty();

var $example2 = $("#grid");

$example2.append(pageableGrid.render().$el)

// Initialize the paginator
var paginator = new Backgrid.Extension.Paginator({
  collection: pageableTerritories
});

// Render the paginator
$example2.append(paginator.render().$el);

// Initialize a client-side filter to filter on the client
// mode pageable collection's cache.
var filter = new Backgrid.Extension.ClientSideFilter({
  collection: pageableTerritories.fullCollection,
  fields: ['FirstName']
});

// Render the filter
$example2.prepend(filter.render().$el);

// Add some space to the filter and move it to the right
filter.$el.css({float: "right", margin: "20px"});

// Fetch some data
pageableTerritories.fetch({reset: true});
}

最佳答案

要在使用backgrid.js和select列扩展名时获取当前选定的单元格,您需要调用以下代码:

var selectedModels = pageableGrid.getSelectedModels();
_.each(selectedModels, function (model) {
  model.destroy();
});


您可以在页面上的某处创建一个button元素,并将click事件处理程序绑定到该元素,然后调用上述代码。粗略的jQuery代码如下:

$('#delete-button').click(function () {
  var selectedModels = pageableGrid.getSelectedModels();
  _.each(selectedModels, function (model) {
    model.destroy();
  });
});

09-20 13:17