Hello!
I'm having a problem considering binding min-max values of numeric textbox using kendo.data.ObservableObject or any attributes, etc.
But before we dwell further on the problem here is my code:
javascript:
templates html:
As seen from the examples I load my template from a remote file, then I use layout to write it to DOM in its proper place.
Now the problem is that I cant use the # based syntax in the template as it's simply not executing (not event the alerts, console log or anything else) and I would need to use the kendo.data.observableobject to bind the appropriate data into widgets since the templates should be reusable, everything else is of course set through the observable which in turn is generated on per case basis.
So to clarify my question again: how to bind numeric textbox values for min and max (and possibly attr which it actively refuses to do so) using remote templates and the observableobject.
I'm having a problem considering binding min-max values of numeric textbox using kendo.data.ObservableObject or any attributes, etc.
But before we dwell further on the problem here is my code:
javascript:
001.var tab;002.var layout;003.var currnetInstances = 0;004.var mainWin = { "showTabs": true };005. 006.$(document).ready(function () {007. tab = $("#tabstrip").kendoTabStrip({008. animation: false009. }).data("kendoTabStrip");010. 011. $("#butt").kendoButton({012. icon: "add",013. click: function (e) {014. openForm("myForm", "form-template-one", "Form: Ime in Priimek")015. }016. });017. 018. $("#butt2").kendoButton({019. icon: "add",020. click: function (e) {021. if (mainWin.showTabs == true) {022. mainWin.showTabs = false;023. $("#butt").val("Odpri v oknu");024. 025. }026. else if (mainWin.showTabs == false) {027. mainWin.showTabs = true;028. $("#butt").val("Dodaj tab");029. }030. 031. }032. });033.});034. 035.templateLoader.loadExtTemplate("views/templates.html");036. 037. 038. 039.function openForm(formId, formTemplateId, formName) {040. var template = kendo.template($("#" + formTemplateId).html(), { useWithBlock: false });041. 042. displayForm(formId, formTemplateId, formName, template);043.}044. 045.function displayForm(formId, formTemplateId, formName) {046. ++currnetInstances;047. 048. formId = formId + "_" + currnetInstances;049. 050. if (mainWin.showTabs == true) {051. tab.append(052. {053. text: formName,054. encoded: false, // Allows use of HTML for item text055. content: "<div id='" + formId + "'></div>"056. }057. );058. 059. tab.activateTab($("#tabstrip .k-last"));060. }061. else if (mainWin.showTabs == false) {062. $(document.body).prepend("<div id='" + formId + "'></div>");063. var win = $("#" + formId).kendoWindow({064. animation: false,065. width: 400,066. height:400,067. title: formName,068. visible: false069. }).data("kendoWindow");070. 071. win.center();072. win.open();073. }074. 075. if (typeof(layout == "undefined")) {076. layout = new kendo.Layout(formTemplateId);077. }078. 079. var formModel = new kendo.data.ObservableObject({080. id1: "k-textbox",081. id2: "k-textbox",082. id3: "k-textbox",083. labelValue1: "ime",084. labelValue2: "priimek",085. labelValue3: "ime in priimek",086. value1: "",087. value2: "",088. combined: function (e) {089. return this.get("value1") + " " + this.get("value2");090. },091. numericBG: function (e) {092. return "green";093. },094. numericVal: -2,095. knumeric_class: function (e) {096. if (parseInt(this.get("numericVal")) < 0) {097. return "numeric_negative"098. }099. else {100. return "numeric_positive"101. }102. },103. numChange: function (e) {104. this.knumeric_class();105. },106. num: function () { return 15;}107. })108. 109. formModel.bind("change", function (e) {110. var varia = formModel.toJSON();111. console.log(varia);112. });113. 114. layout.render("#" + formId);115. 116. kendo.bind($("#" + formId), formModel);117.}templates html:
01.<script type="text/x-kendoui-template" id="form-template-one" data-use-with-blocks="false">02. <div class='form'>03. <label style='display:inline-block;width:160px;line-height:30px;' data-bind='attr: {for: id1}, text: labelValue1'"></label><br />04. <input class='' data-bind="attr: {class: id1}, value: value1">05. <br /><br />06. 07. <label style='display:inline-block;width:160px;line-height:30px;' data-bind='attr: {for: id2}, text: labelValue2'"></label><br />08. <input class='' data-bind="attr: {class: id2}, value: value2">09. <br /><br />10. 11. <label style='display:inline-block;width:160px;line-height:30px;' data-bind='attr: {for: id3}, text: labelValue3'"></label><br />12. <input class='' data-bind="attr: {class: id3}, value: combined" ><br />13. 14. <div data-bind="attr: {class: knumeric_class}">15. <label style='display:inline-block;width:160px;line-height:30px;' data-bind='attr: {for: id3}, text: labelValue3'"></label><br />16. 17. <input data-role="numerictextbox" data-bind="value: numericVal" data-spinners="false" style='text-indent:-5px;'>18. 19. </div>20. </div>21.</script>As seen from the examples I load my template from a remote file, then I use layout to write it to DOM in its proper place.
Now the problem is that I cant use the # based syntax in the template as it's simply not executing (not event the alerts, console log or anything else) and I would need to use the kendo.data.observableobject to bind the appropriate data into widgets since the templates should be reusable, everything else is of course set through the observable which in turn is generated on per case basis.
So to clarify my question again: how to bind numeric textbox values for min and max (and possibly attr which it actively refuses to do so) using remote templates and the observableobject.