使用ajax调用填充显示表

时间:2012-12-02 20:32:18

标签: jquery ajax displaytag

我正在使用portlet和spring MVC。我想获得一个带有ajax调用的项目列表,并使用该列表作为display:table属性。

我使用这个ajax调用:

jQuery.ajax({ url:'<portlet:resourceURL id="recuperarDatosAF">
 </portlet:resourceURL>', data: {idExpediente:expediente}, type: 'POST',
  datatype:'json', success: function(data) { 
      alert(data); 
  } 

每次用户选择组合项时都会执行此调用。每次恢复时不同的项目列表。

我的问题是:如何使用该列表生成可显示的内容?

有没有办法更新jsp中使用该列表定义的display:table?

我定义的显示,检索requestScope列表,但我想用ajax调用检索列表。

我的显示:表格:

       <display:table id="docentes" name="${requestScope.docentesList}"                       
                                           htmlId="resultadosDocentesListTable"
                                           pagesize="4"
                                           class="displayTagTable"
                                           uid="docente">

2 个答案:

答案 0 :(得分:0)

http://jsfiddle.net/kVdZG/

脚本从json数据生成表,用这段代码替换alert(data),这里data.scores是我的数据

var data = { "scores" : [ ["3/1/2011", 610],["4/1/2011", 610],["5/1/2011", 610],["6/1/2011", 610], ["7/1/2011", 720], ["8/1/2011", 500], ["9/1/2011", 500] ] }



$(data.scores).each(function(index, element){
         $('#scores').append('<tr><td> '+element[0]+' </td> <td> '+element[1]+' </td></tr>');       
    })

答案 1 :(得分:0)

我的问题是:如何使用该列表生成可显示的内容?

根据我的经验,您的列表必须包含json数据的地图,例如:

Map productMap = new HashMap();

    productMap.put("id", "1");
    productMap.put("name", "Coca Cola");                

    List<Product> productList = new ArrayList<Product>();
    productList.add(productMap);

    jsonWriter.object()
        .key("status").value(true)                   
        .key("pList").value(productList)
        .endObject();

pList包含产品图。

有一种方法可以更新jsp中使用该列表定义的display:table吗?

是的,在我使用firebug检查显示表标签部分后,我发现显示表标签将更改为普通的html表。所以在 ajax

success: function(data){
    if(data.status == true){
        var strHtml='';                
        for(var i=0;i<data.pList.length;i++){
        strHtml+='<tr><td>'"+data.pList[i].name+"'</td></tr>';   
        }
    jQuery("table#docentes tbody").html(strHtml);
    }                   

},

显示标记

<display:table id="docentes" pagesize="4" class="displayTagTable" uid="docente">
    <display:column escapeXml="true" title="Product Name" >
    </display:column>                                                                                 
</display:table>