<%@taglib uri="/zl-grid" prefix="grid"%>
<grid:gridreport reportcaption="列表" property="mygrid" collection="result.list" caption="caption.list"
showcheckbox="false" idproperty="id" width="100%" height="120"/>
相关js函数:
下面函数前的mygrid为gridreport中定义的property值。
mygridgetsavevalue():返回isreturn为true的字段的值。
mygridselectid():返回选中(单选)的该行的idproperty定义的属性值。
mygridgetselectvalue(colname): 返回选中(单选)行的colname列的值。
mygridgetselectidbycheck():返回选中(复选)的行的idproperty定义的属性值(以','分隔)。
当前行的单元格
取单元格值:
sheetgridgetselectvalue("have_quantity");
给单元格赋值:
sheetgridsetselectvalue("have_quantity", have_quantity.toFixed(2));
报表中要写下拉框时
标题:type=lable, isreturn=true
内容:<select type="select" name="xs" id="xs" style="width:99%"><option value="1">畅</option><option value="2" selected="selected">滞</option></select>
显示该项可以用<span value="2">滞</span>,这样就可以取到value 和 text
返回值:用原框架取返回值时,下拉框值是错误的,通过覆盖框架中sheetgridgetcellvalue方法来实现取下拉框值
把该方法放在页面最下方,才能覆盖前面的这个方法
<script type="text/javascript">
//读取单元格的值(覆盖框架里的同名方法,能够正常读取下拉框的值)
function sheetgridgetcellvalue(cell,datatype){
//需要修改,添加各种输入类型的判断
var returnvalue;
if (cell.childNodes.length==0)
returnvalue=cell.innerText;
else{
if(cell.childNodes[0].tagName==null)
returnvalue=cell.innerText;
else{ if(cell.childNodes[0].tagName.toUpperCase()=="INPUT"){
var type
type=cell.childNodes[0].type;
if (type==null) type ="";
switch (type.toUpperCase()){
case "CHECKBOX":
if(cell.childNodes[0].checked==true)
returnvalue="1";
else
returnvalue="0";
break;
case "TEXT":
returnvalue=cell.childNodes[0].value
break;
default :
returnvalue=cell.innerText;
}
}
else if(cell.childNodes[0].tagName.toUpperCase()=="SELECT")
returnvalue=cell.childNodes[0].value;--这两行代码就是处理下拉框值的
else{returnvalue=cell.innerText;}}}
if(datatype!=null){
if(datatype=="0")returnvalue=returnvalue;
else if(datatype=="1"){
returnvalue=parseFloat(returnvalue);
if (isNaN(returnvalue)) returnvalue=0;
}}
return returnvalue;
}
</script>