目的
需要将数据库中取出的值进行前台展示。
为了使用easyui拓展中的排序功能,需要把表格中的值显示为int类型,但是如果是空字符串的话,转换为int会报错。如果全部转换为str的话,排序会出问题(会按照字符排序而非数值大小)
解决方式:进行一下逻辑判断。如果是None,则转换为空字符串''
,如果有值,则取其值(使用JinJa模板的{{ param }}
获取后端传来的值)。
部分js代码示例
<script>
$(document).ready(function() {
var zNodes = [];
var i=0;
{% for node in result %}
i++;
var obj = new Object();
obj.id = i;
obj.p_code ='{{ node.p_code }}';
obj.jan_mar_5_max ='{{ node.jan_mar_5_max }}'=='None'?'':{{ node.jan_mar_5_max }}; // 如果有值,填入int型值;如果无值,填入空字符串
obj.jan_mar_5_min ='{{ node.jan_mar_5_min }}'=='None'?'':{{ node.jan_mar_5_min }};
obj.mar_sep_5_max ='{{ node.mar_sep_5_max }}'=='None'?'':{{ node.mar_sep_5_max }};
obj.mar_sep_5_min ='{{ node.mar_sep_5_min }}'=='None'?'':{{ node.mar_sep_5_min }};
obj.jan_sep_5_max ='{{ node.jan_sep_5_max }}'=='None'?'':{{ node.jan_sep_5_max }};
obj.jan_sep_5_min ='{{ node.jan_sep_5_min }}'=='None'?'':{{ node.jan_sep_5_min }};
obj.mar_jan_5_max ='{{ node.mar_jan_5_max }}'=='None'?'':{{ node.mar_jan_5_max }};
obj.mar_jan_5_min ='{{ node.mar_jan_5_min }}'=='None'?'':{{ node.mar_jan_5_min }};
obj.sep_jan_5_max ='{{ node.sep_jan_5_max }}'=='None'?'':{{ node.sep_jan_5_max }};
obj.sep_jan_5_min ='{{ node.sep_jan_5_min }}'=='None'?'':{{ node.sep_jan_5_min }};
obj.sep_mar_5_max ='{{ node.sep_mar_5_max }}'=='None'?'':{{ node.sep_mar_5_max }};
obj.sep_mar_5_min ='{{ node.sep_mar_5_min }}'=='None'?'':{{ node.sep_mar_5_min }};
obj.jan_mar_his_max ='{{ node.jan_mar_his_max }}'=='None'?'':{{ node.jan_mar_his_max }};
obj.jan_mar_his_min ='{{ node.jan_mar_his_min }}'=='None'?'':{{ node.jan_mar_his_min }};
obj.mar_sep_his_max ='{{ node.mar_sep_his_max }}'=='None'?'':{{ node.mar_sep_his_max }};
obj.mar_sep_his_min ='{{ node.mar_sep_his_min }}'=='None'?'':{{ node.mar_sep_his_min }};
obj.jan_sep_his_max ='{{ node.jan_sep_his_max }}'=='None'?'':{{ node.jan_sep_his_max }};
obj.jan_sep_his_min ='{{ node.jan_sep_his_min }}'=='None'?'':{{ node.jan_sep_his_min }};
obj.mar_jan_his_max ='{{ node.mar_jan_his_max }}'=='None'?'':{{ node.mar_jan_his_max }};
obj.mar_jan_his_min ='{{ node.mar_jan_his_min }}'=='None'?'':{{ node.mar_jan_his_min }};
obj.sep_jan_his_max ='{{ node.sep_jan_his_max }}'=='None'?'':{{ node.sep_jan_his_max }};
obj.sep_jan_his_min ='{{ node.sep_jan_his_min }}'=='None'?'':{{ node.sep_jan_his_min }};
obj.sep_mar_his_max ='{{ node.sep_mar_his_max }}'=='None'?'':{{ node.sep_mar_his_max }};
obj.sep_mar_his_min ='{{ node.sep_mar_his_min }}'=='None'?'':{{ node.sep_mar_his_min }};
obj.cur_jan_mar ='{{ node.cur_jan_mar }}'=='None'?'':{{ node.cur_jan_mar }};
obj.cur_mar_sep ='{{ node.cur_mar_sep }}'=='None'?'':{{ node.cur_mar_sep }};
obj.cur_jan_sep ='{{ node.cur_jan_sep }}'=='None'?'':{{ node.cur_jan_sep }};
obj.cur_mar_jan ='{{ node.cur_mar_jan }}'=='None'?'':{{ node.cur_mar_jan }};
obj.cur_sep_jan ='{{ node.cur_sep_jan }}'=='None'?'':{{ node.cur_sep_jan }};
obj.cur_sep_mar ='{{ node.cur_sep_mar }}'=='None'?'':{{ node.cur_sep_mar }};
var jan_mar_5_space = (100*(obj.cur_jan_mar-obj.jan_mar_5_min)/(obj.jan_mar_5_max-obj.jan_mar_5_min)).toFixed(0);
obj.jan_mar_5_space = isNaN(jan_mar_5_space)?'':jan_mar_5_space;
var mar_sep_5_space = (100*(obj.cur_mar_sep-obj.mar_sep_5_min)/(obj.mar_sep_5_max-obj.mar_sep_5_min)).toFixed(0);
obj.mar_sep_5_space = isNaN(mar_sep_5_space)?'':mar_sep_5_space;
var jan_sep_5_space = (100*(obj.cur_jan_sep-obj.jan_sep_5_min)/(obj.jan_sep_5_max-obj.jan_sep_5_min)).toFixed(0);
obj.jan_sep_5_space = isNaN(jan_sep_5_space)?'':jan_sep_5_space;
var mar_jan_5_space = (100*(obj.cur_mar_jan-obj.mar_jan_5_min)/(obj.mar_jan_5_max-obj.mar_jan_5_min)).toFixed(0);
obj.mar_jan_5_space = isNaN(mar_jan_5_space)?'':mar_jan_5_space;
var sep_jan_5_space = (100*(obj.cur_sep_jan-obj.sep_jan_5_min)/(obj.sep_jan_5_max-obj.sep_jan_5_min)).toFixed(0);
obj.sep_jan_5_space = isNaN(sep_jan_5_space)?'':sep_jan_5_space;
var sep_mar_5_space = (100*(obj.cur_sep_mar-obj.sep_mar_5_min)/(obj.sep_mar_5_max-obj.sep_mar_5_min)).toFixed(0);
obj.sep_mar_5_space = isNaN(sep_mar_5_space)?'':sep_mar_5_space;
var jan_mar_his_space = (100*(obj.cur_jan_mar-obj.jan_mar_his_min)/(obj.jan_mar_his_max-obj.jan_mar_his_min)).toFixed(0);
obj.jan_mar_his_space = isNaN(jan_mar_his_space)?'':jan_mar_his_space;
var mar_sep_his_space = (100*(obj.cur_mar_sep-obj.mar_sep_his_min)/(obj.mar_sep_his_max-obj.mar_sep_his_min)).toFixed(0);
obj.mar_sep_his_space = isNaN(mar_sep_his_space)?'':mar_sep_his_space;
var jan_sep_his_space = (100*(obj.cur_jan_sep-obj.jan_sep_his_min)/(obj.jan_sep_his_max-obj.jan_sep_his_min)).toFixed(0);
obj.jan_sep_his_space = isNaN(jan_sep_his_space)?'':jan_sep_his_space;
var mar_jan_his_space = (100*(obj.cur_mar_jan-obj.mar_jan_his_min)/(obj.mar_jan_his_max-obj.mar_jan_his_min)).toFixed(0);
obj.mar_jan_his_space = isNaN(mar_jan_his_space)?'':mar_jan_his_space;
var sep_jan_his_space = (100*(obj.cur_sep_jan-obj.sep_jan_his_min)/(obj.sep_jan_his_max-obj.sep_jan_his_min)).toFixed(0);
obj.sep_jan_his_space = isNaN(sep_jan_his_space)?'':sep_jan_his_space;
var sep_mar_his_space = (100*(obj.cur_sep_mar-obj.sep_mar_his_min)/(obj.sep_mar_his_max-obj.sep_mar_his_min)).toFixed(0);
obj.sep_mar_his_space = isNaN(sep_mar_his_space)?'':sep_mar_his_space;
obj.upstream_date = '{{ node.upstream_date }}';
zNodes.push(obj);
{% endfor %}
function resolve() {
console.log(zNodes);
return zNodes;
}
$('#dg').datagrid({
filterBtnIconCls:'icon-filter',
data:resolve(),
striped: true //隔行变色
});
})
</script>
easyui表格展示
可以看到空值(空字符串)也参与了排序。