以编程方式更改JQuery Bootgrid URL

mnowg1ta  于 2023-08-04  发布在  jQuery
关注(0)|答案(1)|浏览(98)

我只是在为我目前的任务尝试Jquery bootgrid和其他几个js网格脚本,所以如果这个问题很尴尬的话,我就直说了。我需要知道Jquery Bootgrid是否(以及如何)支持以编程方式更改URL并使用新URL中的数据刷新其行。我目前的脚本如下,我需要能够在运行时更改URL,取决于用户的选择(源#1-#10)和动态刷新内容。先谢谢你的帮助

var myrequestgrid = $("#myrequestgrid").bootgrid({
    caseSensitive: false,
    ajax: true,
    selection: true, // Enable row selection
      multiSelect: true, // Allow multiple rows to be selected
    url: "resource/myrequestdatafromsource1.php"})

字符串

0s7z1bwu

0s7z1bwu1#

简而言之,你需要用$("#grid").bootgrid("destroy")销毁现有的bootgrid,然后重新绑定bootgrid来修改url。此外,您需要更改表的dom,因为它使用data attribute行中的数据。下面的例子展示了如何从多个API中实现动态数据。

$("#grid-data").find("thead").html(`<tr>
      <th data-column-id="id" data-type="numeric">ID</th>
      <th data-column-id="title">Title</th>
      <th data-column-id="price">Price</th>
    </tr>`);
bindBootGrid($("#selectOption").val(), productResponse);

function productResponse(response) {
  return {
    current: 1,
    rowCount: response.limit,
    rows: response.products,
    total: response.total
  };
}

function userResponse(response) {

  return {
    current: 1,
    rowCount: response.limit,
    rows: response.users,
    total: response.total
  };
}

$("#selectOption").off("change").on("change", function() {

  $("#grid-data").bootgrid("destroy");

  if ($(this).attr("data-handel") == "product") {
    $("#grid-data").find("thead").html(`<tr>
      <th data-column-id="id" data-type="numeric">ID</th>
      <th data-column-id="title">Title</th>
      <th data-column-id="price">Price</th>
    </tr>`);
    bindBootGrid($(this).val(), productResponse);
  } else {
    $("#grid-data").find("thead").html(`<tr>
      <th data-column-id="id" data-type="numeric">ID</th>
      <th data-column-id="firstName">First Name</th>
      <th data-column-id="lastName">Last Name</th>
    </tr>`);
    bindBootGrid($(this).val(), userResponse);
  }

});

function bindBootGrid(url, callback) {
  var grid = $("#grid-data").bootgrid({
    ajaxSettings: {
      method: "GET",
      cache: false
    },
    ajax: true,
    navigation: 0,
    url: url,
    responseHandler: function(response) {
      return callback(response);
    }
  });
}

个字符

相关问题