jQuery MiniUI

 找回密码
 立即注册
查看: 2692|回复: 3
打印 上一主题 下一主题

关于grid列渲染问题。 [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2013-9-28 14:52:56 |只看该作者 |倒序浏览
<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;                           }                   });              }
异步同步都渲染不了 不知道是怎么回事,请大家帮忙看看


Rank: 2

沙发
发表于 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;
                           }
                   });
          
   }

Rank: 9Rank: 9Rank: 9

板凳
发表于 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;
         
   }

Rank: 2

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

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

Archiver|普加软件

GMT+8, 2024-11-2 01:20 , Processed in 1.017495 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部