2010-12-13 146 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下的“在运行时加载数据”)。