2014-01-07 3 views
0

Возможно ли, что функция listAction not call server использует AJAX, и функция вызовет функцию javascript, которая возвращает объект?jquery -jtable- listAction get object from javascript function

$('#ExecActDelays').jtable({ 
actions: { 
listAction://get object from javascript no call server method 
}, 
///... 

может мне помочь?

ответ

1

спасибо я решить мою proble путем редактирования jquery.jtable.js

мой сценарий:

function getObject(){ 
var result={}; 
result.Result="OK"; 
var array=[]; 
//... 
{ 
array.push(new object...); 
} 
result.Records=array; 
return result; 
} 

$('#ExecActDelays').jtable({ 
actions: { 
listAction: getObject() 
}, 

и в jquery.jtable.js я изменить

self._ajax({ 
        url: loadUrl, 
        data: self._lastPostData, 
        success: function (data) { 
         self._hideBusy(); 

         //Show the error message if server returns error 
         if (data.Result != 'OK') { 
          self._showError(data.Message); 
          return; 
         } 

         //Re-generate table rows 
         self._removeAllRows('reloading'); 
         self._addRecordsToTable(data.Records); 

         self._onRecordsLoaded(data); 

         //Call complete callback 
         if (completeCallback) { 
          completeCallback(); 
         } 
        }, 
        error: function() { 
         self._hideBusy(); 
         self._showError(self.options.messages.serverCommunicationError); 
        } 
       }); 
      } 

к: (строке 442)

if (typeof loadUrl == "string") { 
       self._ajax({ 
        url: loadUrl, 
       data: self._lastPostData, 
       success: function (data) { 
        self._hideBusy(); 

        //Show the error message if server returns error 
        if (data.Result != 'OK') { 
         self._showError(data.Message); 
         return; 
        } 

        //Re-generate table rows 
        self._removeAllRows('reloading'); 
        self._addRecordsToTable(data.Records); 

        self._onRecordsLoaded(data); 

        //Call complete callback 
        if (completeCallback) { 
         completeCallback(); 
        } 
       }, 
       error: function() { 
        self._hideBusy(); 
        self._showError(self.options.messages.serverCommunicationError); 
       } 
      }); 
     } 
     else {//no from server method 
      self._hideBusy(); 

      //Re-generate table rows 
      self._removeAllRows('reloading'); 
      self._addRecordsToTable(loadUrl.Records); 

      self._onRecordsLoaded(loadUrl); 

      //Call complete callback 
      if (completeCallback) { 
       completeCallback(); 
      } 
     } 

моим полному my jquery.jtable.js

+0

На основе [документации] (http://www.jtable.org/ApiReference/Actions#act-listAction) вы можете использовать URL-адрес или функцию, не знаете, работало ли оно уже в январе –

0

Попробуйте сделать это

function foo(){ 
    return object;// JSON object 
} 

$('#ExecActDelays').jtable({ 
actions: { 
listAction: foo() 
}, 
///... 

ИЛИ попробовать это слишком

var object = null; 

function foo(){ 
    object = objectJSON; 
} 

$('#ExecActDelays').jtable({ 
actions: { 
listAction: object 
}, 
///... 
+0

Я попробовал уже Это не работает, относится к тому, что функция возвращает URL-адрес, чтобы получить список записей с сервера вы пытаетесь? – lealam