168 lines
4.2 KiB
HTML
168 lines
4.2 KiB
HTML
|
<!DOCTYPE HTML>
|
||
|
<html>
|
||
|
<head>
|
||
|
<link rel="stylesheet" href="../css/smoothness/jquery-ui-1.8.16.custom.css" type="text/css"/>
|
||
|
<link rel="stylesheet" href="../slick.grid.css" type="text/css"/>
|
||
|
<link rel="stylesheet" href="examples.css" type="text/css"/>
|
||
|
<link rel="stylesheet" href="../plugins/slick.headerbuttons.css" type="text/css"/>
|
||
|
<style>
|
||
|
.icon-highlight-off,
|
||
|
.icon-highlight-on {
|
||
|
background-image: url(../images/bullet_blue.png);
|
||
|
}
|
||
|
|
||
|
.icon-highlight-off {
|
||
|
opacity: 0.2;
|
||
|
}
|
||
|
|
||
|
.negative-highlight {
|
||
|
background: red;
|
||
|
}
|
||
|
</style>
|
||
|
</head>
|
||
|
<body>
|
||
|
<div style="position:relative">
|
||
|
<div style="width:600px;">
|
||
|
<div id="myGrid" style="width:100%;height:500px;"></div>
|
||
|
</div>
|
||
|
|
||
|
<div class="options-panel">
|
||
|
<p>
|
||
|
This example demonstrates using the <b>Slick.Plugins.HeaderButtons</b> plugin to easily add buttons to column
|
||
|
headers. These buttons can be specified directly in the column definition, and are very easy to configure and use.
|
||
|
</p>
|
||
|
<h2>View Source:</h2>
|
||
|
<ul>
|
||
|
<li><A href="https://github.com/mleibman/SlickGrid/blob/gh-pages/examples/example-plugin-headerbuttons.html" target="_sourcewindow"> View the source for this example on Github</a></li>
|
||
|
</ul>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
<script src="../lib/firebugx.js"></script>
|
||
|
|
||
|
<script src="../lib/jquery-1.7.min.js"></script>
|
||
|
<script src="../lib/jquery-ui-1.8.16.custom.min.js"></script>
|
||
|
<script src="../lib/jquery.event.drag-2.2.js"></script>
|
||
|
|
||
|
<script src="../slick.core.js"></script>
|
||
|
<script src="../slick.grid.js"></script>
|
||
|
<script src="../plugins/slick.headerbuttons.js"></script>
|
||
|
|
||
|
<script>
|
||
|
var grid;
|
||
|
var data = [];
|
||
|
var options = {
|
||
|
enableCellNavigation: true
|
||
|
};
|
||
|
var columns = [];
|
||
|
var columnsWithHighlightingById = {};
|
||
|
|
||
|
|
||
|
// Set up some test columns.
|
||
|
for (var i = 0; i < 10; i++) {
|
||
|
columns.push({
|
||
|
id: i,
|
||
|
name: String.fromCharCode("A".charCodeAt(0) + i),
|
||
|
field: i,
|
||
|
width: 90,
|
||
|
sortable: true,
|
||
|
formatter: highlightingFormatter,
|
||
|
header: {
|
||
|
buttons: [
|
||
|
{
|
||
|
cssClass: "icon-highlight-off",
|
||
|
command: "toggle-highlight",
|
||
|
tooltip: "Highlight negative numbers."
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
// Set multiple buttons on the first column to demonstrate overflow.
|
||
|
columns[0].name = "Resize me!";
|
||
|
columns[0].header = {
|
||
|
buttons: [
|
||
|
{
|
||
|
image: "../images/tag_red.png"
|
||
|
},
|
||
|
{
|
||
|
image: "../images/comment_yellow.gif"
|
||
|
},
|
||
|
{
|
||
|
image: "../images/info.gif"
|
||
|
},
|
||
|
{
|
||
|
image: "../images/help.png"
|
||
|
}
|
||
|
]
|
||
|
};
|
||
|
|
||
|
// Set a button on the second column to demonstrate hover.
|
||
|
columns[1].name = "Hover me!";
|
||
|
columns[1].header = {
|
||
|
buttons: [
|
||
|
{
|
||
|
image: "../images/help.png",
|
||
|
showOnHover: true,
|
||
|
tooltip: "This button only appears on hover.",
|
||
|
handler: function(e) {
|
||
|
alert('Help');
|
||
|
}
|
||
|
}
|
||
|
]
|
||
|
};
|
||
|
|
||
|
|
||
|
|
||
|
// Set up some test data.
|
||
|
for (var i = 0; i < 100; i++) {
|
||
|
var d = (data[i] = {});
|
||
|
d["id"] = i;
|
||
|
for (var j = 0; j < columns.length; j++) {
|
||
|
d[j] = Math.round(Math.random() * 10) - 5;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
function highlightingFormatter(row, cell, value, columnDef, dataContext) {
|
||
|
if (columnsWithHighlightingById[columnDef.id] && value < 0) {
|
||
|
return "<div style='color:red; font-weight:bold;'>" + value + "</div>";
|
||
|
} else {
|
||
|
return value;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
$(function () {
|
||
|
grid = new Slick.Grid("#myGrid", data, columns, options);
|
||
|
|
||
|
var headerButtonsPlugin = new Slick.Plugins.HeaderButtons();
|
||
|
|
||
|
headerButtonsPlugin.onCommand.subscribe(function(e, args) {
|
||
|
var column = args.column;
|
||
|
var button = args.button;
|
||
|
var command = args.command;
|
||
|
|
||
|
if (command == "toggle-highlight") {
|
||
|
if (button.cssClass == "icon-highlight-on") {
|
||
|
delete columnsWithHighlightingById[column.id];
|
||
|
button.cssClass = "icon-highlight-off";
|
||
|
button.tooltip = "Highlight negative numbers."
|
||
|
} else {
|
||
|
columnsWithHighlightingById[column.id] = true;
|
||
|
button.cssClass = "icon-highlight-on";
|
||
|
button.tooltip = "Remove highlight."
|
||
|
}
|
||
|
|
||
|
grid.invalidate();
|
||
|
}
|
||
|
});
|
||
|
|
||
|
grid.registerPlugin(headerButtonsPlugin);
|
||
|
});
|
||
|
</script>
|
||
|
</body>
|
||
|
</html>
|