Q:根据不同的值,使视图的行显示不同的颜色
A:
业务背景:如果时间已经超过当前时间了,就显示红色
在sp6中做法如下:
视图列的脚本如下:- var dt=getItemValueAsDate("日期");
- var tm=getToday();
- //转为字符串类型
- var dt1=format(dt,"yyyy-MM-dd HH:mm:ss");
- vat tm1=format(tm,"yyyy-MM-dd HH:mm:ss");
- //计算2者的相隔小时数
- var diff = diffHours(dt1,tm1);
- //设置要显示的内容
- var col = dt1;
- if(diff > 0)
- {
- //设置当前的行为红色
- col +="<script>";
- col += "var obj=document.getElementsByName('_selects'); for(var i=0;i<obj.length;i++){if(obj[i].value == '" + getId() + "') {obj[i].parentNode.parentNode.bgColor = 'red';break;}};";
- col += "</script>";
- }
- col;
复制代码 效果图:
ps:仅保证对普通的视图的效果
在sp7中做法如下:
由于sp7中的视图有重构,输出来的视图表格会被替换成重构后的。所以需要在视图中配一个查询表单。在表单源码中写如下代码:- <script>
- jQuery(document).ready(function(){
- setTimeout(function(){
- jQuery("div.changeColor").each(function(){
- jQuery(this).parents("tr").css("backgroundColor","red");
- });
- },300);
- });
- </script>
复制代码 在视图列脚本模式中:- var dt=getItemValueAsDate("出生年月");
- var tm=getToday();
- //转为字符串类型
- var dt1=format(dt,"yyyy-MM-dd HH:mm:ss");
- var tm1=format(tm,"yyyy-MM-dd HH:mm:ss");
- //计算2者的相隔小时数
- var diff = diffHours(dt1,tm1);
- //设置要显示的内容
- var col = dt1;
- if(diff > 0)
- {
- col += "<div class='changeColor' style='display:none;'></div>";
- }
- col;
复制代码 |