2010-12-13 148 views
2

我遇到了YUI的AJAX和YUI Datatable之間的混合問題。 Ajax請求火災正確和我回去格式化爲正確的數據:YUI AJAX和.Net MVC

{NoteId:'" + result.NoteId + "', CreatedOn:'" + result.CreatedOn.ToShortDateString() + 
        "', UpdatedOn:'" + result.UpdatedOn.ToShortDateString() + "', CreatedBy:'" + result.CreatedBy + 
        "', NoteContent:'" + result.NoteContent + "'} 

這些正確地匹配表的身份,我從最初創建數據表(工作正常)的聲明撕開這個格式。我不知道我的AJAX電話是否有'onSuccess'亂碼或者什麼,這是我第一次觸摸YUI。

另外,如果我手動執行noteTable.addRow並對數據進行硬編碼,它就可以工作。

代碼AJAX調用和表更新:

function addNote() { 
      var noteText = editor.get('element').value; 
      var id = '<%= Model.Menu.Level1Tab %>' 
      var lpqId = <%= Model.LpqID %> 
      var sUrl = "/Lpm/Notes"; 
      var callback = { 
        success: function(o) { 
          noteTable.addRow(o.responseText); 
         }, 
        failure: function(o) { 
         } 
        } 

      var transaction = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, 'id=' + id + '&noteContent=' + noteText + '&noteId=' + noteId + '&lpqId=' + lpqId); 
     } 

我很好被困在此,因此,如果任何人都可以看看,讓我知道我搞砸的東西了,我會很感激它。如果你需要更多的信息,我有很多,包括螢火蟲調試信息。 在此先感謝幫助

回答

1

看起來像你需要將o.responseText從字符串轉換爲對象。 JSON實用程序可以幫助你做到這一點:http://developer.yahoo.com/yui/json/

順便提一下,DataTable的DataSource集成可以幫助您管理這些問題。本示例(http://developer.yahoo.com/yui/examples/datatable/dt_xhrjson.html)向您展示瞭如何設置DataSource並將其與DataTable集成。請注意,您可以發送請求以從服務器獲取一些數據,然後在回調中使用「onDataReturn ...」方法之一(請參閱http://developer.yahoo.com/yui/datatable/#data下的「在運行時加載數據」)。