jQuery UI Widgets › Forums › Navigation › Tree › Two Icons for an Item
This topic contains 3 replies, has 2 voices, and was last updated by Dimitar 9 years, 11 months ago.
-
AuthorTwo Icons for an Item Posts
-
Hi,
I am creating a Tree that requires me to have two icons, one to determine the state of the item and the other for the type. I currently have a Tree with just one icon. Is there a way to have two icons?
Thank you,
Sankalpfunction populateTreePanelTree(DeviceName){
var source = {
datatype: “xml”,
datafields: [{
name: ‘id’,
map: ‘DeviceName’
}, {
name: ‘DisplayName’,
map: ‘DisplayName’
}, {
name: ‘icon’,
map: ‘Icon’
}, , {
name: ‘DeviceID’,
map: ‘DeviceID’
}, {
name: ‘DeviceParentID’,
map: ‘DeviceParentID’
}
],
root: “Devices”,
record: “Device”,
id: ‘DeviceID’,
url: “/webclient/deviceinventory/json/CT” + DeviceName + “TreeData.xml”,
async: false
};TreedataAdapter = new $.jqx.dataAdapter(source);
TreedataAdapter.dataBind();
var records = TreedataAdapter.getRecordsHierarchy(‘DeviceID’, ‘DeviceParentID’, ‘items’, [{
name: ‘DisplayName’,
map: ‘label’
}]);
treeData = records;
$(‘#jqxWidget’).jqxTree({ source: records});
}Hello sankalp404,
You can achieve this, but the second icon would have to be added as part of the item’s label. Otherwise, it is not possible. Here is an example:
<!DOCTYPE html> <html lang="en"> <head> <link rel="stylesheet" href="../../jqwidgets/styles/jqx.base.css" type="text/css" /> <script type="text/javascript" src="../../scripts/jquery-1.10.2.min.js"></script> <script type="text/javascript" src="../../scripts/demos.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxcore.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxdata.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxbuttons.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxscrollbar.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxpanel.js"></script> <script type="text/javascript" src="../../jqwidgets/jqxtree.js"></script> </head> <body> <div id='content'> <script type="text/javascript"> $(document).ready(function () { var data = [ { "id": "2", "parentid": "1", "text": "Hot Chocolate", "value": "$2.3" }, { "id": "3", "parentid": "1", "text": "Peppermint Hot Chocolate", "value": "$2.3" }, { "id": "4", "parentid": "1", "text": "Salted Caramel Hot Chocolate", "value": "$2.3" }, { "id": "5", "parentid": "1", "text": "White Hot Chocolate", "value": "$2.3" }, { "text": "<img src='../../images/mailIcon.png' />Chocolate Beverage", "id": "1", "parentid": "-1", "value": "$2.3", "icon": "../../images/mailIcon.png" }, { "id": "6", "text": "Espresso Beverage", "parentid": "-1", "value": "$2.3" }, { "id": "7", "parentid": "6", "text": "Caffe Americano", "value": "$2.3" }, { "id": "8", "text": "Caffe Latte", "parentid": "6", "value": "$2.3" }, { "id": "9", "text": "Caffe Mocha", "parentid": "6", "value": "$2.3" }, { "id": "10", "text": "Cappuccino", "parentid": "6", "value": "$2.3" }, { "id": "11", "text": "Pumpkin Spice Latte", "parentid": "6", "value": "$2.3" }, { "id": "12", "text": "Frappuccino", "parentid": "-1" }, { "id": "13", "text": "Caffe Vanilla Frappuccino", "parentid": "12", "value": "$2.3" }, { "id": "15", "text": "450 calories", "parentid": "13", "value": "$2.3" }, { "id": "16", "text": "16g fat", "parentid": "13", "value": "$2.3" }, { "id": "17", "text": "13g protein", "parentid": "13", "value": "$2.3" }, { "id": "14", "text": "Caffe Vanilla Frappuccino Light", "parentid": "12", "value": "$2.3" }] // prepare the data var source = { datatype: "json", datafields: [ { name: 'id' }, { name: 'icon' }, { name: 'parentid' }, { name: 'text' }, { name: 'value' } ], id: 'id', localdata: data }; // create data adapter. var dataAdapter = new $.jqx.dataAdapter(source); // perform Data Binding. dataAdapter.dataBind(); // get the tree items. The first parameter is the item's id. The second parameter is the parent item's id. The 'items' parameter represents // the sub items collection name. Each jqxTree item has a 'label' property, but in the JSON data, we have a 'text' field. The last parameter // specifies the mapping between the 'text' and 'label' fields. var records = dataAdapter.getRecordsHierarchy('id', 'parentid', 'items', [{ name: 'text', map: 'label'}]); $('#jqxWidget').jqxTree({ source: records, width: '300px' }); }); </script> <div id='jqxWidget'> </div> </div> </body> </html>
Best Regards,
DimitarjQWidgets team
http://www.jqwidgets.com/Hello Dimitar,
Does this work when the datatype is “xml” and not “json”?
Thanks,
SankalpHi Sankalp,
Unfortunately, this would not work in XML-bound tree. You may, however, add the icon through the updateItem method after the tree has been initialized, e.g.:
var treeItems = $("#jqxTree").jqxTree('getItems'); var firstItem = treeItems[0]; $('#jqxTree').jqxTree('updateItem', firstItem, { label: '<img src="../../images/mailIcon.png" />Item' });
Best Regards,
DimitarjQWidgets team
http://www.jqwidgets.com/ -
AuthorPosts
You must be logged in to reply to this topic.