JSrender渲染

更新后不刷新表单,使用jsrender渲染指定行数据。

1.在表格指定行处设置id
如果是只刷新某行数据,其他行保持不变,则需要在方法内传入该tr的index;
如果是条件查询出符合条件的tr,则不需传入index值。

forEach var="item" items="${result}" varStatus="st">

st的值

<tr id="tr${st.index}">

调用更新方法时传index参数:

update(tr${st.index}')

ajax处采用jsrender渲染

//第九列
$("#"+index).find("td").eq(9).remove(); 
//移除第九列后,后续列补上,则继续移除第九列
$("#"+index).find("td").eq(9).remove();
$("#"+index).append($.templates("#trInside").render({item: data.result, index: index}));

jsrender模板渲染

<script id="trInside" type="text/x-jsrender">
        class="text-center">{{: item.inspectionCheckStatus}}</td>
        
        {{if item.inspectionCheckStatus=='Y'}}
        
        {{else item.inspectionCheckStatus=='N'}}
        
        {{/if}}
        </td>
script>

或者

<script id="WaybillTableTemplate" type="text/x-jsrender">
    
        class="text-center">{{:waybillNo}}

        class="text-center">{{:origin}}

        class="text-center">{{:dest}}

        class="text-center">{{:fdate}}

        class="text-center">{{:ieDate}}

        class="text-center">{{:weight}}

        class="text-center">
            class="glyphicon glyphicon-pencil" style="cursor: pointer;" title="修改" οnclick="showWaybill('{{:waybillNo}}')"
                data-toggle="modal" data-target="#modal">
                 
            class="glyphicon glyphicon-remove" style="cursor: pointer;" title="删除" οnclick="del({{:waybillId}})">
        
    
script>

有一点需要注意的是,jsrender渲染数据时,日期格式不正确。
要么在前端页面采用自定义函数规范格式,这种比较麻烦;
要么在dto规范日期格式。

@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")

你可能感兴趣的:(前端)