Multicolumn with checkboxes
Multicolumn combo with checkboxes demo
* Any resemblance to reality is purely coincidental
Init from script
JSON from server
XML from server
Custom checkbox
XML from server
Custom checkbox
</> Source
<!DOCTYPE html>
<html>
<head>
<title>Multicolumn with checkboxes</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<link rel="stylesheet" type="text/css" href="../../../codebase/fonts/font_roboto/roboto.css"/>
<link rel="stylesheet" type="text/css" href="../../../codebase/dhtmlx.css"/>
<script src="../../../codebase/dhtmlx.js"></script>
<style>
h4.info_text {
font-family: Arial;
font-size: 14px;
}
td.descr_td {
padding-right: 50px;
vertical-align: top;
}
/* custom cehckbox css */
/* copy css from chanekbox, change style name and bg-image */
div.dhxcombolist_material div.dhxcombo_option div.dhxcombo_checkbox.my_css_1 {
background-image: url("../common/flags2/flag_blue.png");
background-position: center center;
}
div.dhxcombolist_material div.dhxcombo_option div.dhxcombo_checkbox.my_css_0 {
background-image: url("../common/flags2/flag_gray.png");
background-position: center center;
}
/* make default checkbox margin smalle to fill to a cell */
div.dhxcombolist_material div.dhxcombo_option div.dhxcombo_image,
div.dhxcombolist_material div.dhxcombo_option div.dhxcombo_checkbox {
margin: 0px 2px;
}
</style>
<script>
var myCombo;
var myCombo2;
var myCombo3;
var myCombo4;
function doOnLoad() {
// from script
myCombo = new dhtmlXCombo("combo_zone_script", "combo_script", 200, "checkbox"); // make sure you set 4th param to "checkbox"
myCombo.setTemplate({
input: "#capital#, #country#",
columns: [
{header: " ", width: 41, option: "#checkbox#"}, // column for checkboxes
{header: " ", width: 40, css: "flag", option: "<img src='#flag#' border='0' style='margin-top: 8px; margin-left: 2px;'>"},
{header: "Capital", width: 80, css: "capital", option: "#capital#"},
{header: "Country", width: 110, css: "country", option: "#country#"},
{header: "Proverb", width: 250, css: "proverb", option: "#proverb#"}
]
});
myCombo.addOption([
{value: "1", text: { flag: "../common/flags/austria.png", country: "Austria", capital: "Vienna", proverb: "Two wrongs don't make a right" }, checked: 1 },
{value: "2", text: { flag: "../common/flags/belarus.png", country: "Belarus", capital: "Minsk", proverb: "The pen is mightier than the sword" } },
{value: "3", text: { flag: "../common/flags/cameroon.png", country: "Cameroon", capital: "Yaoundé", proverb: "Actions speak louder than words" }, checked: 1, selected: 1 },
{value: "4", text: { flag: "../common/flags/canada.png", country: "Canada", capital: "Ottawa", proverb: "If it ain't broke, don't fix it" } }
]);
myCombo.enableFilteringMode(true);
// fron json
myCombo2 = new dhtmlXCombo("combo_zone_json", "combo_json", 200, "checkbox");
myCombo2.load("../common/multicolumn_data_checkbox.json");
myCombo2.enableFilteringMode(true);
// from xml
myCombo3 = new dhtmlXCombo("combo_zone_xml", "combo_xml", 200, "checkbox");
myCombo3.load("../common/multicolumn_data_checkbox.xml");
myCombo3.enableFilteringMode(true);
// custom checkbox
myCombo4 = new dhtmlXCombo("combo_zone_custom", "combo_custom", 200, "my_checkbox");
myCombo4.load("../common/multicolumn_data_checkbox.json");
myCombo4.enableFilteringMode(true);
}
// you can just change images, but here we will show how to create custom item based on checkbox,
// then you will able to use both checkboxes and custom checkboxes together on same page
// most functionality will inherited from default checkbox item
dhtmlXCombo.prototype.modes.my_checkbox = {
// just change css pref a bit, all other code will correct
// #state# will replaced with "1" for checked and "0" for not checked
image_css: "dhxcombo_checkbox my_css_#state#",
// also you can disable top level image, which used just for ui offset,
// no needs to have this offset in multicolumn combo
image: false
};
// copy other code from default checkbox
dhtmlXComboExtend("my_checkbox", "checkbox");
// setChecked/getChecked already exist, no more actions
</script>
</head>
<body onload="doOnLoad();">
<h3>Multicolumn combo with checkboxes demo</h3>
<div style='font-size: 10px; color: #555; font-family: Arial;'><b>*</b> Any resemblance to reality is purely coincidental</div>
<br>
<h4 class="info_text">Init from script</h3>
<div id="combo_zone_script"></div>
<br>
<h4 class="info_text">JSON from server</h3>
<div id="combo_zone_json"></div>
<br>
<h4 class="info_text">XML from server</h3>
<div id="combo_zone_xml"></div>
<br>
<h4 class="info_text">Custom checkbox</h3>
<div id="combo_zone_custom"></div>
</body>
</html>
Documentation
Check documentation to learn how to use the components and easily implement them in your applications.