Есть несколько способов установить высоту для вашей сетки.
1 - установить domLayout: 'autoHeight'
для свойства сетки ( Это кошмар для большого количества строк )
Когда вы устанавливаете autoHeight, вы можете установить минимальную высоту для вашей сетки, но невозможно указать максимальную высоту.
Как описано в , это документация :
Когда domLayout='autoHeight'
, тогда ваше приложение не должно устанавливать высоту в div сетки, так как div должен иметь естественный поток для соответствия содержимому сетки. Когда автоматическая высота отключена, ваше приложение должно установить высоту в сеточном элементе div, поскольку сетка будет заполнять элемент div, который вы предоставляете.
- Когда вы устанавливаете различное количество строк в сетке, сетка будетизмените его высоту, чтобы он соответствовал строкам.
- Поскольку высота сетки превышает высоту браузера, вам потребуется использовать вертикальную прокрутку браузера для просмотра данных (или прокрутку
iFrames
, если вы смотрите наприведенный ниже пример). - Высота также будет изменяться при фильтрации, чтобы добавлять и удалять строки.
- Если у вас есть закрепленные строки, размер сетки будет соответствовать размеченным рядам.
- Вертикальная прокрутка не произойдет, однако горизонтальная прокрутка, включая закрепленные столбцы, будет работать как обычно.
- Можно переместить сетку в режим «полной высоты» и из него, используя
api.setDomLayout()
или изменяя привязанное свойство domLayout
.
2 - установите его в своих скриптах ( Как-то лучше, чем autoheight ):
gridOptions.api.setDomLayout('normal');
document.querySelector('#results').style.height = '400px';
3- Если вы предпочитаете использовать CSS, вы можете сделать это, используя общие правила CSS, как показано ниже:
.ag-theme-balham .ag-cell
{
height: 300px;
}
4- Или, если вы хотите использовать каркас макета сетки, вы можете найти его пример здесь .
Вот окончательный вид, реализованный на вашем примере (я уменьшил объем данных, чтобы не касаться границы предела количества символов SO):
$(function() {
let res = {
"data": [{
"date": "2000-01-03",
"value": 101.45
}, {
"date": "2000-01-04",
"value": 103.22
}, {
"date": "2000-01-05",
"value": 104.14
}, {
"date": "2000-01-06",
"value": 105.23
}, {
"date": "2000-01-07",
"value": 105.34
}, {
"date": "2000-01-10",
"value": 105.16
}, {
"date": "2000-01-11",
"value": 105.95
}, {
"date": "2000-01-12",
"value": 105.79
}, {
"date": "2000-01-13",
"value": 106.17
}, {
"date": "2000-01-14",
"value": 105.87
}, {
"date": "2000-01-17",
"value": 104.9
}, {
"date": "2000-01-18",
"value": 105.67
}, {
"date": "2000-01-19",
"value": 105.32
}, {
"date": "2000-01-20",
"value": 105.47
}, {
"date": "2000-01-21",
"value": 104.78
}, {
"date": "2000-01-24",
"value": 105.57
}, {
"date": "2000-01-25",
"value": 106.04
}, {
"date": "2000-01-26",
"value": 105.66
}, {
"date": "2000-01-27",
"value": 105.12
}, {
"date": "2000-01-28",
"value": 107.13
}, {
"date": "2000-01-31",
"value": 107.32
}, {
"date": "2000-02-01",
"value": 107.85
}, {
"date": "2000-02-02",
"value": 108.16
}, {
"date": "2000-02-03",
"value": 107.56
}, {
"date": "2000-02-04",
"value": 107.19
}, {
"date": "2000-02-07",
"value": 108.62
}, {
"date": "2000-02-08",
"value": 109.47
}, {
"date": "2000-02-09",
"value": 108.79
}, {
"date": "2000-02-10",
"value": 109.27
}, {
"date": "2000-02-11",
"value": 108.82
}, {
"date": "2000-02-14",
"value": 108.96
}, {
"date": "2000-02-15",
"value": 109.22
}, {
"date": "2000-02-16",
"value": 109.44
}, {
"date": "2000-02-17",
"value": 110.56
}, {
"date": "2000-02-18",
"value": 111.09
}],
"result": [{
"date_peak": "2000-01-13",
"date_through": "2000-01-03",
"udl_peak": 106.17,
"udl_through": 101.45,
"value": 4.652538196155742
}, {
"date_peak": "2000-02-02",
"date_through": "2000-01-21",
"udl_peak": 108.16,
"udl_through": 104.78,
"value": 3.2258064516129004
}, {
"date_peak": "2000-02-08",
"date_through": "2000-02-04",
"udl_peak": 109.47,
"udl_through": 107.19,
"value": 2.127064091799613
}, {
"date_peak": "2000-02-21",
"date_through": "2000-02-09",
"udl_peak": 111.26,
"udl_through": 108.79,
"value": 2.2704292673958903
}, {
"date_peak": "2000-03-14",
"date_through": "2000-02-24",
"udl_peak": 105.12,
"udl_through": 111.37,
"value": -5.611924216575382
}, {
"date_peak": "2000-03-23",
"date_through": "2000-03-14",
"udl_peak": 107.24,
"udl_through": 105.12,
"value": 2.0167427701674123
}, {
"date_peak": "2000-03-31",
"date_through": "2000-03-23",
"udl_peak": 102.78,
"udl_through": 107.24,
"value": -4.158895934352847
}, {
"date_peak": "2000-04-11",
"date_through": "2000-03-31",
"udl_peak": 106.92,
"udl_through": 102.78,
"value": 4.028021015761829
}, {
"date_peak": "2000-04-17",
"date_through": "2000-04-11",
"udl_peak": 104.54,
"udl_through": 106.92,
"value": -2.2259633370744436
}, {
"date_peak": "2000-05-03",
"date_through": "2000-04-17",
"udl_peak": 109.02,
"udl_through": 104.54,
"value": 4.285440979529365
}]
}
let moves_data = res.result;
let gridOptions = {
rowData: moves_data,
columnDefs: [{
headerName: 'date_peak',
field: 'date_peak'
},
{
headerName: 'date_through',
field: 'date_through'
},
{
headerName: 'udl_peak',
field: 'udl_peak'
},
{
headerName: 'udl_through',
field: 'udl_through'
},
{
headerName: 'value',
field: 'value'
},
]
};
let movesGrid = new agGrid.Grid(document.querySelector("#results"), gridOptions);
movesGrid.gridOptions.api.sizeColumnsToFit();
movesGrid.gridOptions.columnApi.autoSizeAllColumns();
//graph with arrows
let udl_data = res.data;
let g = new Dygraph(
document.getElementById("graph"),
udl_data.map((x) => {
let res = [];
for (let col in x) {
if (x.hasOwnProperty(col)) {
if (col.toLowerCase() === "date") {
res.push(new Date(x[col]));
} else {
res.push(parseFloat(x[col]));
}
}
}
return res;
}), {
labels: Object.keys(udl_data[0]),
underlayCallback: (canvas, area, g) => {
moves_data.map((row) => {
let coordsA = g.toDomCoords(new Date(row.date_through), parseFloat(row.udl_through));
let coordsB = g.toDomCoords(new Date(row.date_peak), parseFloat(row.udl_peak));
let add_height = -15;
coordsA[1] += add_height;
coordsB[1] += add_height;
canvas.beginPath();
canvas.moveTo(coordsA[0], coordsA[1]);
canvas.lineTo(coordsB[0], coordsB[1]);
canvas.strokeStyle = "black";
canvas.stroke();
let radius = 5;
canvas.beginPath();
canvas.moveTo(coordsA[0], coordsA[1]);
canvas.arc(coordsA[0], coordsA[1], radius, 2 * Math.PI, Math.PI, false);
canvas.fillStyle = "green";
canvas.fill();
canvas.beginPath();
canvas.moveTo(coordsB[0], coordsB[1]);
canvas.arc(coordsB[0], coordsB[1], radius, Math.PI, 2 * Math.PI, false);
canvas.fillStyle = "red";
canvas.fill();
});
}
}
);
let the_width = $("#tabs-research-tabs-udl_move-graph-container").css("width");
$("#tabs-research-tabs-udl_move-graph").css("width", the_width);
g.resize();
})
.container {
display: grid;
grid-template-columns: 1fr 2fr 1fr;
grid-template-rows: 50vh;
width: 100%;
}
#left {
grid-row: 1/1;
grid-column: 1/1;
background: gray;
}
#results {
grid-row: 1/1;
grid-column: 2/2;
overflow: hidden;
}
#right {
grid-row: 1/1;
grid-column: 3/3;
background: gray;
}
<div id="results_container">
<div id="graph-container" class="dygraph-container">
<div id="legend" class="dygraph-legend"></div>
<div id="graph"></div>
</div>
<div class="container">
<div id="left"></div>
<div id="results" class="ag-theme-balham"></div>
<div id="right"></div>
</div>
</div>
<script type='text/javascript' src='http://cdn01.dailycaller.com/wp-includes/js/jquery/jquery.js?ver=1.7.2'></script>
Если пример подвержен ошибкам, вы можете найти рабочий пример здесь в скрипке