Tuesday, 15 February 2011

asking about Javascript remoting in Salesforce -



asking about Javascript remoting in Salesforce -

i trying utilize javascript remoting in salesforce. have textbox input city name find. first time clicked search button got right result when clicked on time got many duplicated columns. don't know have gone wrong. please help me. here code:

controller class:

global sharing class accountremoter { public static list<account> business relationship { get; set; } public accountremoter() { } @remoteaction global static list<account> getaccount(string cityname) { business relationship = [select id, name, city__c, recordtypeid, recordtype.name business relationship city__c = :cityname]; homecoming account; } }

visual page:

<apex:page controller="accountremoter"> <apex:includescript value="{!$resource.knockout}"/> <apex:includescript value="{!urlfor($resource.kendo, '/js/jquery.min.js')}"/> <script type="text/javascript"> var vm = function () { var self = this; self.items = ko.observablearray(); self.columnnames = ko.computed(function () { if (self.items().length === 0) homecoming []; var props = []; var obj = self.items()[0]; (var name in obj) props.push(name); homecoming props; }); }; function getremoteaccount() { var cityname = document.getelementbyid('acctsearch').value; visualforce.remoting.manager.invokeaction( '{!$remoteaction.accountremoter.getaccount}', cityname, function(result, event){ if (event.status) { var vm = new vm(); ko.applybindings(vm); //vm.items.removeall(); (var = 0; < result.length; i++){ vm.items.push({ 'name': result[i].name, 'city': result[i].city__c }); } } else if (event.type === 'exception') { document.getelementbyid("responseerrors").innerhtml = event.message + "<br/>\n<pre>" + event.where + "</pre>"; } else { document.getelementbyid("responseerrors").innerhtml = event.message; } }, {escape: true} ); } </script> <input id="acctsearch" type="text"/> <button onclick="getremoteaccount()">search</button> <div id="responseerrors"></div> <div id="dv"> <table style="float:left;" id="mytable"> <thead > <tr data-bind="foreach: columnnames" > <th> <span data-bind="text: $data"></span> </th> </tr> </thead> <tbody data-bind="foreach: items"> <tr data-bind="foreach: $parent.columnnames"> <td data-bind="text: $parent[$data]"></td> </tr> </tbody> </table> </div> </apex:page>

try self.items.removeall(); before applybindings()

javascript salesforce remoting

No comments:

Post a Comment