I have an array of objects that are read from a JSON file. I am having difficulty referencing attributes of the child object of the parent. What is the correct syntax or what step am I missing to accomplish what I am trying to do (which is conditional template formatting)? Any help would be appreciated. Thanks.
In this example, "control.type" is what I am after in the edit template.
My static JSON looks like this...
[
{"questiontext":"Please enter the first name.","control":{"@type":"textbox","@label":"First Name"},"answer":null,"comment":"This is where the comment goes"},
{"questiontext":"What is the status?","control":{"@type":"combobox","@label":"Status:","item":[{"@key":"Open","@value":"OP"},{"@key":"Canceled","@value":"CO"},{"@key":"Closed","@value":"CL"},{"@key":"Complete","@value":"CO"}]},"answer":null,"comment":null},
{"questiontext":"What is the status?","control":{"@type":"radiobutton","@label":"Status:","item":[{"@key":"Open","@value":"OP"},{"@key":"Canceled","@value":"CO"},{"@key":"Closed","@value":"CL"},{"@key":"Complete","@value":"CO"}]},"answer":null,"comment":null},
{"questiontext":"What was the date of the incident?","control":{"@type":"datetime","@mask":"datetime","@label":"Date:"},"answer":null,"comment":null}
]
In this example, "control.type" is what I am after in the edit template.
My static JSON looks like this...
[
{"questiontext":"Please enter the first name.","control":{"@type":"textbox","@label":"First Name"},"answer":null,"comment":"This is where the comment goes"},
{"questiontext":"What is the status?","control":{"@type":"combobox","@label":"Status:","item":[{"@key":"Open","@value":"OP"},{"@key":"Canceled","@value":"CO"},{"@key":"Closed","@value":"CL"},{"@key":"Complete","@value":"CO"}]},"answer":null,"comment":null},
{"questiontext":"What is the status?","control":{"@type":"radiobutton","@label":"Status:","item":[{"@key":"Open","@value":"OP"},{"@key":"Canceled","@value":"CO"},{"@key":"Closed","@value":"CL"},{"@key":"Complete","@value":"CO"}]},"answer":null,"comment":null},
{"questiontext":"What was the date of the incident?","control":{"@type":"datetime","@mask":"datetime","@label":"Date:"},"answer":null,"comment":null}
]
<!DOCTYPE html><html><head> <title>Editing</title> <link href="../../iqaListTest/content/kendo/2012.3.1114/examples-offline.css" rel="stylesheet"> <link href="../../../iqaListTest/content/kendo/2012.3.1114/kendo.common.min.css" rel="stylesheet"> <link href="../../../iqaListTest/content/kendo/2012.3.1114/kendo.default.min.css" rel="stylesheet"> <script src="../../../iqaListTest/scripts/kendo/2012.3.1114/jquery.min.js"></script> <script src="../../../iqaListTest/scripts/kendo/2012.3.1114/kendo.web.min.js"></script> <script src="../../iqaListTest/scripts/kendo/2012.3.1114/console.js"></script></head><body> <a class="offline-button" href="../index.html">Back</a> <div id="example" class="k-content"> <div class="k-toolbar k-grid-toolbar"> <a class="k-button k-button-icontext k-add-button" href="#"><span class="k-icon k-add"></span>Add new record</a> </div> <div class="listview-holder"> <div id="listView"></div> </div> <!--<div id="pager" class="k-pager-wrap"> </div>--> <script type="text/x-kendo-tmpl" id="template"> <div class="iqa-view"> <dl> <dt>Question</dt> <dd>${questiontext}</dd> <dt>Answer</dt> <dd>${answer}</dd> <dt>Comment</dt> <dd>${comment}</dd> </dl> <div class="edit-buttons"> <a class="k-button k-button-icontext k-edit-button" href="\\#"><span class="k-icon k-edit"></span>Edit</a> <a class="k-button k-button-icontext k-delete-button" href="\\#"><span class="k-icon k-delete"></span>Delete</a> </div> </div> </script> <script type="text/x-kendo-tmpl" id="editTemplate"> <div class="iqa-view"> <dl> <dt>${control.label}</dt> <dd> #if (control.type == 'textbox') { # <input type="text" data-bind="value:answer" name="answer" required="required" validationMessage="required" /> <span data-for="answer" class="k-invalid-msg"></span> # } # </dd> </dl> <div class="edit-buttons"> <a class="k-button k-button-icontext k-update-button" href="\\#"><span class="k-icon k-update"></span>Save</a> <a class="k-button k-button-icontext k-cancel-button" href="\\#"><span class="k-icon k-cancel"></span>Cancel</a> </div> </div> </script> <script> $(document).ready(function () { var dataSource = new kendo.data.DataSource({ transport: { read: { url: "iqaData.txt", dataType: "json" } }, change: function () { } }); var listView = $("#listView").kendoListView({ dataSource: dataSource, template: kendo.template($("#template").html()), editTemplate: kendo.template($("#editTemplate").html()) }).data("kendoListView"); $(".k-add-button").click(function (e) { listView.add(); e.preventDefault(); }); }); </script> <style scoped> .iqa-view { float: left; width: 650px; margin: 5px; padding: 3px; -moz-box-shadow: inset 0 0 50px rgba(0,0,0,0.1); -webkit-box-shadow: inset 0 0 50px rgba(0,0,0,0.1); box-shadow: inset 0 0 50px rgba(0,0,0,0.1); border-top: 1px solid rgba(0,0,0,0.1); -webkit-border-radius: 8px; -moz-border-radius: 8px; border-radius: 8px; } .listview-holder { width: 700px; margin: 0 auto; padding: 0; border: 0; border: 1px solid rgba(0,0,0,0.1); height: 400px; overflow: auto; } .iqa-view dl { margin: 10px 0; padding: 0; min-width: 0; } .iqa-view dt, dd { float: left; margin: 0; padding: 0; height: 30px; line-height: 30px; } .iqa-view dt { clear: left; padding: 0 5px 0 15px; text-align: right; opacity: 0.6; width: 100px; } .k-listview { border: 0; padding: 0; min-width: 0; } .k-listview:after, .iqa-view dl:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } .edit-buttons { text-align: right; padding: 5px; min-width: 100px; border-top: 1px solid rgba(0,0,0,0.1); -webkit-border-radius: 8px; -moz-border-radius: 8px; border-radius: 8px; } .k-toolbar, #listView { width: 660px; margin: 0 auto; -webkit-border-radius: 11px; -moz-border-radius: 11px; border-radius: 11px; } span.k-invalid-msg { position: absolute; margin-left: 160px; margin-top: -26px; } </style></div></body></html>