jQuery MiniUI

标题: 关于grid列渲染问题。 [打印本页]

作者: xizhen0328    时间: 2013-9-28 14:52:56     标题: 关于grid列渲染问题。

<div class="mini-fit">
        <div id="datagrid1" class="mini-datagrid" style="width:100%;height:100%;"
                     url="${ctx}/policy/list.do"  idField="id" showSummaryRow="true"
                     totalField="rows" dataField="list" allowAlternating="true"
                     sizeList="[5,10,20,50]" pageSize="10"  onrowdblclick="check" sortMode="client">
                 <div property="columns">
                     <div type="checkcolumn"></div>
                     <div field="distCode" width="120" renderer="onAreaCodeRenderer"  headerAlign="center" allowSort="true">所属辖区</div>   
                     <div field="isLine" align="center" renderer="onLineRenderer" width="100" headerAlign="center" allowSort="true">是否有封顶线</div>        
                     <div field="isValid" align="center" renderer="onValidRenderer" width="100" headerAlign="center" allowSort="true">是否有效</div>                           
                     <div field="operator" width="40"  headerAlign="center" allowSort="true">添加人</div>                           
                         <div field="operator" width="100"   headerAlign="center" allowSort="true">更新人</div>
                         <div field="updateTime" align="center" dateFormat="yyyy-MM-dd HH:mm:ss" width="100" headerAlign="center" allowSort="true">更新时间</div>
                  </div>
        </div>
</div>

function onAreaCodeRenderer(e){                   var value = e.value;                   var ret = value;                   $.ajax({                           url:"${ctx}/area/getAreaByCode.do",                           data:{areaCode:value},                           async:false,//异步同步都渲染不了                           success:function(data){                                   //ret = data.distName;                                   return data.distName;                           }                   });              }
异步同步都渲染不了 不知道是怎么回事,请大家帮忙看看



作者: xizhen0328    时间: 2013-9-28 14:53:35

function onAreaCodeRenderer(e){
                   var value = e.value;
                   var ret = value;
                   $.ajax({
                           url:"${ctx}/area/getAreaByCode.do",
                           data:{areaCode:value},
                           async:false,
                           success:function(data){
                                   //ret = data.distName;
                                   return data.distName;
                           }
                   });
          
   }
作者: niko    时间: 2013-9-28 17:33:19

1)非常不建议你在renderer中用ajax,那会极大增加性能开销
2)如果一定要这样做:
function onAreaCodeRenderer(e){
                   var value = e.value;
                   var ret = value;
                   $.ajax({
                           url:"${ctx}/area/getAreaByCode.do",
                           data:{areaCode:value},
                           async:false, //必须同步
                           success:function(data){
                                   ret = data.distName;
                                   //return data.distName;
                           }
                   });
        return ret;
         
   }
作者: xizhen0328    时间: 2013-9-28 17:53:54

niko 发表于 2013-9-28 17:33
1)非常不建议你在renderer中用ajax,那会极大增加性能开销
2)如果一定要这样做:
function onAreaCodeRen ...

是的。 我测试了一下 如果是10条记录大概是0.5秒左右
100条记录大概是5-6秒




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2