gpt4 book ai didi

javascript - 需要帮助使用简单的数据网格让多个表在单个页面上工作

转载 作者:行者123 更新时间:2023-11-30 05:53:23 25 4
gpt4 key购买 nike

我正在尝试使用“simple data grid”在单个页面上显示多个唯一(表格)网格。在下面的代码中,我不清楚如何将唯一数据传递给下面的函数而不是 var data = ExampleData.fruits。到目前为止,我为添加具有唯一数据的第二个表所做的每一次尝试都会导致所有数据被破坏。 (我确实需要所有现有的功能排序突出点击,分页等)。

我创建了这个 jsfiddle这是使用单个网格和示例数据。我已经为我尝试使用的第二组数据注释掉了一些代码。

ExampleData = {};
ExampleData.handleMockjaxResponse = function(settings) {
var uri = new Uri(settings.url);
var page = uri.getQueryParamValue('page') || 1;
var order_by = uri.getQueryParamValue('order_by');
var sortorder = uri.getQueryParamValue('sortorder');
var rows_per_page = 6;
var start_index = (page - 1) * rows_per_page;
var total_pages = 1;
var data = ExampleData.fruits; //How can I pass this data so that multiple tables can exist with different data
if (data.length != 0) {
total_pages = parseInt((data.length - 1) / rows_per_page) + 1;
}
if (order_by) {
data.sort(function(left, right) {
var a = left[order_by];
var b = right[order_by];

if (sortorder == 'desc') {
var c = b;
b = a;
a = c;
}
if (a < b) {
return -1;
}
else if (a > b) {
return 1;
}
else {
return 0;
}
});
}

最佳答案

问题的根源是您试图在同一个 url ('*') 上设置两个 mockjack。你不能同时拥有它们。

如果您需要为给定的 URL 替换 mockjack,您需要先删除旧的:

$.mockjaxClear();
$.mockjax({
url: '*',
response: ... // whatever
});

但是那仍然不会完全解决您的问题。通过在安装第二个 mockjack 之前清除第一个 mockjack,我能够显示两个数据网格。但是尝试导航 #grid 表会导致一些有趣的错误(当然),因为当我们删除了应该为 #grid 提供数据的 mockjack设置#grid2

这是你应该做的:

  • 为每个表使用不同的 URL
  • 为每个 URL 设置不同的 mockjack

forked your fiddle 与解决方案。它使用数据说明符来指示要使用哪个数据集,并使用传统的 lambda 函数进行数据响应回调。

function generateMockjackResponse(dataIn) {
return function(settings) {
var uri = new Uri(settings.url);
var page = uri.getQueryParamValue('page') || 1;
var order_by = uri.getQueryParamValue('order_by');
var sortorder = uri.getQueryParamValue('sortorder');

var rows_per_page = 6;
var start_index = (page - 1) * rows_per_page;

var total_pages = 1;
var data = dataIn;

if (data.length != 0) {
total_pages = parseInt((data.length - 1) / rows_per_page) + 1;
}

if (order_by) {
data.sort(function(left, right) {
var a = left[order_by];
var b = right[order_by];

if (sortorder == 'desc') {
var c = b;
b = a;
a = c;
}

if (a < b) {
return -1;
}
else if (a > b) {
return 1;
}
else {
return 0;
}
});
}
var result = {
total_pages: total_pages,
rows: data.slice(start_index, start_index + rows_per_page)
};
this.responseText = result;
};
}

var data1 = [
// some data
];

var data2 = [
// other data
];

$.mockjax({
url: '*',
data: 1,
response: generateMockjackResponse(data1)
});

$('#grid1').simple_datagrid({
order_by: true,
data: 1
});

$.mockjax({
url: '*',
data: 2,
response: generateMockjackResponse(data1)
});

$('#grid2').simple_datagrid({
order_by: true,
data: 2
});

关于javascript - 需要帮助使用简单的数据网格让多个表在单个页面上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13405287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com