﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-紫蝶∏飛揚↗-文章分类-EOS</title><link>http://www.blogjava.net/algz/category/46266.html</link><description>Purple Butterfly Flying
QQ群:7101519
Flex,Ext,Spring,Hibernate,EOS,SpringSecurity,Struts</description><language>zh-cn</language><lastBuildDate>Fri, 01 Apr 2011 17:35:06 GMT</lastBuildDate><pubDate>Fri, 01 Apr 2011 17:35:06 GMT</pubDate><ttl>60</ttl><item><title>自已编写的基于EOS框架的树形表格控件</title><link>http://www.blogjava.net/algz/articles/347485.html</link><dc:creator>紫蝶∏飛揚↗</dc:creator><author>紫蝶∏飛揚↗</author><pubDate>Fri, 01 Apr 2011 09:39:00 GMT</pubDate><guid>http://www.blogjava.net/algz/articles/347485.html</guid><wfw:comment>http://www.blogjava.net/algz/comments/347485.html</wfw:comment><comments>http://www.blogjava.net/algz/articles/347485.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/algz/comments/commentRss/347485.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/algz/services/trackbacks/347485.html</trackback:ping><description><![CDATA[<p>思路: 先查询出所有数据的根结点,并对每个根结点检查是不是有子结点,如果有子结点则在显示时增加"+"图片,没有则不添加.但用户点击"+"图片时,则通过AJAX调用逻辑流查询触发结点的所有子结点(采用递归方式,以每个子结点的父结点属性从上向下查询),并隐藏加载到触发结点后面(以TR形式添加,并设置每个子元素的paraTaskno属性为父结点taskno(其实仍是以递归方式,从上向下给每个子元素的paraTaskno属性设置父元素的id)<br />
<br />
服务端数据: 仅查询根结点.<br />
<br />
html代码:<br />
&nbsp; <br />
&lt;viewlist id="e587ead4-daa3-431e-a0ed-fac40e013850"&gt;<br />
&nbsp; &lt;h:form name="page_form" action="com.bos.mp.taskStatistics.TaskStatistics.flow" method="post"&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;input type="hidden" name="_eosFlowAction" value="pageQuery" &gt;<br />
&nbsp;&nbsp;&nbsp; &lt;h:hiddendata property="criteria" /&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;h:hidden property="page/begin"/&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;h:hidden property="page/length"/&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;h:hidden property="page/count"/&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;h:hidden property="page/isCount"/&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;w:panel id="list_panel" width="100%" title="任务列表"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;table align="center" border="0" width="100%" class="EOS_table"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr id="table_header"&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;th&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 任务名称<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/th&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;th&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 项目名称<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/th&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;th&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 项目模块<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/th&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;th&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 工作占项目比率<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/th&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;th&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 负责人<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/th&gt;<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;th&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 审核人<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/th&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;th&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 计划开始日<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/th&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;th&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 计划完成日<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/th&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;th&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 任务状态<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/th&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;th&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 完成率(%)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/th&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;th&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 更新日期<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/th&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;th&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 原因<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/th&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;th&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 实际完成率(%)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/th&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;th&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 实际完成日<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/th&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;th&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;提前/滞后完成天数<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/th&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;w:checkGroup id="group1"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;l:iterate property="mpprojectfollows" id="id1"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;%<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;long temp = 0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;if(null != ((DataObject)pageContext.getAttribute("id1")).getString("proEndDate")){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;DataObject t=(DataObject)pageContext.getAttribute("id1");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;String d1 = ((DataObject)pageContext.getAttribute("id1")).getString("comDate") == null ? new SimpleDateFormat("yyyy-MM-dd").format(new Date()):((DataObject)pageContext.getAttribute("id1")).getString("comDate");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;String d2 = ((DataObject)pageContext.getAttribute("id1")).getString("proEndDate");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;temp = RetOrgInfo.daysDifference(d1,d2);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;if(temp&lt;0 &amp;&amp; !((DataObject)pageContext.getAttribute("id1")).getString("taskStatus").equals("完成")){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;out.print("&lt;tr class='EOS_table_row' style='background-color:red;' id='"+((DataObject)pageContext.getAttribute("id1")).getString("taskno")+"'&gt;");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;}else if(temp&lt;0 &amp;&amp; ((DataObject)pageContext.getAttribute("id1")).getString("taskStatus").equals("完成")){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;out.print("&lt;tr class='EOS_table_row' style='background-color:orange;' id='"+((DataObject)pageContext.getAttribute("id1")).getString("taskno")+"'&gt;");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;}else if(temp&gt;0 &amp;&amp; ((DataObject)pageContext.getAttribute("id1")).getString("taskStatus").equals("完成")){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;out.print("&lt;tr class='EOS_table_row'&nbsp; style='background-color:green;' id='"+((DataObject)pageContext.getAttribute("id1")).getString("taskno")+"'&gt;");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;}else{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;out.print("&lt;tr class='EOS_table_row' id='"+((DataObject)pageContext.getAttribute("id1")).getString("taskno")+"'&gt;");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; %&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &lt;td align="left" &gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &lt;l:present&nbsp; property="childTasks" iterateId="id1"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;img src="&lt;%=request.getContextPath() %&gt;/common/skins/default/images/grouppanel/grouppanel_open.gif" onclick="node_click('&lt;b:write iterateId="id1" property="taskno"/&gt;');"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/l:present&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;h:hidden iterateId="id1" property="paraTaskno"/&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;a href="#" onclick="javascript:showTaskDet('&lt;b:write iterateId="id1" property="taskno"/&gt;');"&gt;&lt;b:write iterateId="id1" property="taskName"/&gt;&lt;/a&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td align="center"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;b:write iterateId="id1" property="projectName"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td align="center"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;b:write iterateId="id1" property="modName"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td align="center"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;b:write iterateId="id1" property="taskRate"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;l:notEmpty iterateId="id1" property="taskRate"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;%<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/l:notEmpty&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td align="center"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;b:write iterateId="id1" property="planPres"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td align="center"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;b:write iterateId="id1" property="auditorName"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td align="center"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;b:write iterateId="id1" property="proStarDate" formatPattern="yyyy-MM-dd"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td align="center"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;b:write iterateId="id1" property="proEndDate" formatPattern="yyyy-MM-dd"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td align="center"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;b:write iterateId="id1" property="taskStatus"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td align="center"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;b:write iterateId="id1" property="actorRated"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td align="center"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;b:write iterateId="id1" property="actorDate" formatPattern="yyyy-MM-dd"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td align="center"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;b:write iterateId="id1" property="reason"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td align="center"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;b:write iterateId="id1" property="auditRate"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td align="center"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;b:write iterateId="id1" property="comDate" formatPattern="yyyy-MM-dd"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td align="center"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;%<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;if(temp&lt;0){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;out.print("滞后"+Math.abs(temp)+"天");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;}else if(temp&gt;0 &amp;&amp; ((DataObject)pageContext.getAttribute("id1")).getString("taskStatus").equals("完成")){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;out.print("提前"+temp+"天");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; %&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/l:iterate&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/w:checkGroup&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td colspan="16" class="command_sort_area"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div id="pageroot" align="right"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;l:equal property="page/isCount" targetValue="true"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 共<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;b:write property="page/count"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 条记录 第<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;b:write property="page/currentPage"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 页/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;b:write property="page/totalPage"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 页<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/l:equal&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;l:equal property="page/isCount" targetValue="false"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 第<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;b:write property="page/currentPage"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 页<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/l:equal&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input type="button" onclick="firstPage('page', 'pageQuery', null, null, 'page_form');" value="首页"&nbsp; &lt;l:equal property="page/isFirst" targetValue="true"&gt;disabled&lt;/l:equal&gt; &gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input type="button" onclick="prevPage('page', 'pageQuery', null, null, 'page_form');" value="上页" &lt;l:equal property="page/isFirst" targetValue="true"&gt;disabled&lt;/l:equal&gt; &gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input type="button" onclick="nextPage('page', 'pageQuery', null, null, 'page_form');" value="下页" &lt;l:equal property="page/isLast" targetValue="true"&gt;disabled&lt;/l:equal&gt; &gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;l:equal property="page/isCount" targetValue="true"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input type="button" onclick="lastPage('page', 'pageQuery', null, null, 'page_form');" value="尾页" &lt;l:equal property="page/isLast" targetValue="true"&gt;disabled&lt;/l:equal&gt; &gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/l:equal&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/table&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/w:panel&gt;<br />
&nbsp; &lt;/h:form&gt;<br />
&lt;/viewlist&gt;</p>
<p><br />
<br />
&lt;script&gt;&nbsp;<br />
var jquery = jQuery.noConflict();<br />
&nbsp;&nbsp;&nbsp; //主结点展开/收起<br />
&nbsp;&nbsp;&nbsp; function node_click(taskid){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var el=jquery("#"+taskid).find("img")[0]//event.srcElement<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var path=el.src.substr(el.src.lastIndexOf("/")+1)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var prifix=el.src.substr(0,el.src.lastIndexOf("/"))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(path=="grouppanel_open.gif"){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //显示结点<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var tr=jquery(el).closest("tr");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(jquery(el).closest("tr").next().css("display")=="none"){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; el.src=prifix+"/grouppanel_close.gif";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tr.nextAll("tr[paraTaskno='"+tr.attr("id")+"']").show();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }else{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; readchildnodeByAjax(taskid);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jquery(el).trigger("click");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }else{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //隐藏结点<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; el.src=prifix+"/grouppanel_open.gif";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var tr=jquery(el).closest("tr");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; recursion_node(tr,false);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; //ajax读取子结点<br />
&nbsp;&nbsp;&nbsp; function readchildnodeByAjax(taskid){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var myAjax=new Ajax("com.bos.mp.projectfollow.mpprojectfollowbiz.QueryTask.biz");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myAjax.addParam("criteria/_entity","com.bos.mp.projectfollow.dataset.ProTaskQryEntity");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myAjax.addParam("criteria/_expr[0]/paraTaskno",taskid);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myAjax.submit();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //获取"root/data/mpprojectfollows"结点数组<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var nodes=myAjax.getXMLDom().selectNodes("root/data/mpprojectfollows");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(var i=0;i&lt;nodes.length;i++){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; addElement(jquery("#"+taskid),nodes[i]);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; *动态增加tr结点,以请求的服务端数据来遍历添加结点<br />
&nbsp;&nbsp;&nbsp;&nbsp; *template:html页面元素;node:服务端数据子实体<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp; function addElement(template,node){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var xml=jquery(node);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var template=addnode(template,xml)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var childnodes=xml.children("childTasks");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(var i=0;i&lt;childnodes.length&amp;&amp;jquery(xml.children("childTasks")[i]).text()!="";i++){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; addElement(template,xml.children("childTasks")[i]);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; *以服务端的子实体对象(xml)构造一个结点添加到html元素(template)<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp; function addnode(template,xml){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var open_gif='&lt;%=request.getContextPath() %&gt;/common/skins/default/images/grouppanel/grouppanel_open.gif';<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var close_gif="&lt;%=request.getContextPath() %&gt;/common/skins/default/images/grouppanel/grouppanel_close.gif"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //从模板结点构造出目标结点tr<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var curtr=template.clone().insertAfter(template).hide()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .attr("id",jquery(xml.find("taskno")[0]).text())<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .attr("paraTaskno",jquery(xml.find("paraTaskno")[0]).text());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //首个TD结点&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var firsttd=jquery(curtr.children("td")[0]);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var td=jquery(curtr.children("td")[0]).css("padding-left",parseInt(firsttd.css("padding-left"))+10+"px")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .empty();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jquery("&lt;a href='#'&gt;&lt;/a&gt;").text(jquery(xml.find("taskName")[0]).text())<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .bind("click",function(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; showTaskDet(jquery(xml.find("taskno")[0]).text());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }).appendTo(td);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var img=jquery("&lt;img/&gt;").prependTo(td);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(jquery(xml.children("childTasks")[0]).text()!=""){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //非叶子结点,绑定事件<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; img.attr("src",open_gif);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; img.bind("click",function(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var path=jquery(this).attr("src");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var tr=jquery(this).closest("tr");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(path==open_gif){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jquery(this).attr("src",close_gif);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; recursion_node(tr,true);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }else{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jquery(this).attr("src",open_gif);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; recursion_node(tr,false);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; })<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }else{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //叶子结点<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; img.attr("src",close_gif);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; td.next().empty()//text(jquery(xml.find("projectName")[0]).text())<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .next().empty()//text(jquery(xml.find("modName")[0]).text())<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .next().text(jquery(xml.find("taskRate")[0]).text())<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .next().text(jquery(xml.find("planPres")[0]).text())<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .next().text(jquery(xml.find("auditorName")[0]).text())<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .next().text(jquery(xml.find("proStarDate")[0]).text())<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .next().text(jquery(xml.find("proEndDate")[0]).text())<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .next().text(jquery(xml.find("taskStatus")[0]).text())<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .next().text(jquery(xml.find("actorRated")[0]).text())<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .next().text(jquery(xml.find("actorDate")[0]).text())<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .next().text(jquery(xml.find("reason")[0]).text())<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .next().text(jquery(xml.find("auditRate")[0]).text())<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .next().text(jquery(xml.find("comDate")[0]).text())<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .next().text("");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return curtr;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp; *层叠递归方式显示或隐藏结点<br />
&nbsp;&nbsp;&nbsp;&nbsp; * node:jquery对象;isshow:boolean值<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp; function recursion_node(node,isshow){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var open_gif='&lt;%=request.getContextPath() %&gt;/common/skins/default/images/grouppanel/grouppanel_open.gif';<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var close_gif="&lt;%=request.getContextPath() %&gt;/common/skins/default/images/grouppanel/grouppanel_close.gif"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var nodes=node.nextAll("tr[paraTaskno='"+node.attr("id")+"']")</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(var i=0;i&lt;nodes.length;i++){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; recursion_node(jquery(nodes[i]),isshow);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(!isshow){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jquery(nodes[i]).hide();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }else{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jquery(nodes[i]).show();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(nodes.length&gt;0){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jquery(node.find("img")[0]).attr("src",!isshow?open_gif:close_gif)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; }</p>
&lt;/script&gt;<br />
<img src ="http://www.blogjava.net/algz/aggbug/347485.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/algz/" target="_blank">紫蝶∏飛揚↗</a> 2011-04-01 17:39 <a href="http://www.blogjava.net/algz/articles/347485.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>EOS 显示模态窗口</title><link>http://www.blogjava.net/algz/articles/333544.html</link><dc:creator>紫蝶∏飛揚↗</dc:creator><author>紫蝶∏飛揚↗</author><pubDate>Thu, 30 Sep 2010 06:55:00 GMT</pubDate><guid>http://www.blogjava.net/algz/articles/333544.html</guid><wfw:comment>http://www.blogjava.net/algz/comments/333544.html</wfw:comment><comments>http://www.blogjava.net/algz/articles/333544.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/algz/comments/commentRss/333544.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/algz/services/trackbacks/333544.html</trackback:ping><description><![CDATA[<p>&lt;w:lookup&gt;显示模态窗口。（表现形式是text+button）<br />
lookupUrl&nbsp;&nbsp; String&nbsp;&nbsp; 弹出窗口加载的URL。<br />
onReturnFunc&nbsp;&nbsp; Js函数名&nbsp;&nbsp; 关闭模态窗口时的回调函数，输入参数为模态窗口的返回值。返回true修改lookup控件值，否则返回false.</p>
<p>模态窗口输入参数：dialogArguments；类型数组，格式：[value，displayValue]。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $id("displayValue").value = dialogArguments[1];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $id("submitValue").value = dialogArguments[0];<br />
模态窗口输出参数：returnValue；返回值类型为数组，格式为：[提交值，显示值]。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; returnValue = [$id('submitValue').value,$id('displayValue').value];</p>
<p>接受lookup控件显示值和提交值的代码。 <br />
1。接收通过模态对话框的dialogArguments 参数（不可随意变更名称）：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $id("displayValue").value = dialogArguments[1];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $id("submitValue").value = dialogArguments[0];<br />
2。接收通过url传递的参数：<br />
主页面：&lt;h:param name="param1"&nbsp; value="url传递的参数"/&gt;<br />
接收页面：&lt;%=URLDecoder.decode(request.getParameter("param1"),"UTF-8") %&gt;</p>
<img src ="http://www.blogjava.net/algz/aggbug/333544.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/algz/" target="_blank">紫蝶∏飛揚↗</a> 2010-09-30 14:55 <a href="http://www.blogjava.net/algz/articles/333544.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>EOS 解决STRUTS标签不能嵌套的问题</title><link>http://www.blogjava.net/algz/articles/333235.html</link><dc:creator>紫蝶∏飛揚↗</dc:creator><author>紫蝶∏飛揚↗</author><pubDate>Tue, 28 Sep 2010 07:34:00 GMT</pubDate><guid>http://www.blogjava.net/algz/articles/333235.html</guid><wfw:comment>http://www.blogjava.net/algz/comments/333235.html</wfw:comment><comments>http://www.blogjava.net/algz/articles/333235.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/algz/comments/commentRss/333235.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/algz/services/trackbacks/333235.html</trackback:ping><description><![CDATA[<p>EOS提供了&lt;l:iterator/&gt;标签，可以对数组集合进行迭代。<br />
iterate标签的实现原理是对数组或集合进行迭代，每次把子元素放在page数据区指定的节点下。这个节点名称由iterate标签的id</p>
<p>属性来指定。<br />
&lt;%=&nbsp; ((DataObject)pageContext.getAttribute("id1")).getString("paramDictname") %&gt;</p>
<img src ="http://www.blogjava.net/algz/aggbug/333235.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/algz/" target="_blank">紫蝶∏飛揚↗</a> 2010-09-28 15:34 <a href="http://www.blogjava.net/algz/articles/333235.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>EOS TAB子页定义ID,不重复ID方法</title><link>http://www.blogjava.net/algz/articles/333234.html</link><dc:creator>紫蝶∏飛揚↗</dc:creator><author>紫蝶∏飛揚↗</author><pubDate>Tue, 28 Sep 2010 07:20:00 GMT</pubDate><guid>http://www.blogjava.net/algz/articles/333234.html</guid><wfw:comment>http://www.blogjava.net/algz/comments/333234.html</wfw:comment><comments>http://www.blogjava.net/algz/articles/333234.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/algz/comments/commentRss/333234.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/algz/services/trackbacks/333234.html</trackback:ping><description><![CDATA[<p>TAB子页定义ID,不重复ID方法(注:TAB对象的获取用$o("id"));TAB对象无法创建IFRAME带关闭按钮的TAB子页(其自带的创建带关闭按扭TAB子页无法正常加载页面)<br />
1.取TAB对象的最后一个子页的ID+"1",形成如"ID11111"方式.(当然如果有主键作为ID最好)<br />
&nbsp;&nbsp;&nbsp; var tab= $o("emailList").getTabs()[$o("emailList").getLength()-1];<br />
&nbsp; var&nbsp; id=tab.id+"1";<br />
2. var title+='&lt;A class=close onclick="$o(\'emailList\').getTab(\''+id+\").close();"&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/A&gt;'<br />
3.tab子页面调用父窗口进行CRUD控制方法<br />
&nbsp;&lt;script&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; function addtabpage(id,title,src){<br />
&nbsp;&nbsp;&nbsp; var tab= $o("emailList").getTabs()[$o("emailList").getLength()-1];<br />
&nbsp;&nbsp;&nbsp; id=tab.id+"1";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if($o("emailList").getTab(id)==null){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; title+='&lt;A class=close onclick="$o(\'emailList\').getTab(\''+id+'\').close();"&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/A&gt;'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $o("emailList").createIframeTab(title,src,true,id)&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $o("emailList").getTabs()[$o("emailList").getLength()-1].active();<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; function deltabpage(id){<br />
&nbsp;&nbsp;&nbsp; if(id==null) {<br />
&nbsp;&nbsp;&nbsp; $o("emailList").getActiveTab().close()<br />
&nbsp;&nbsp;&nbsp; }else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $o(id).close();<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp; function getTabSize(){<br />
&nbsp;&nbsp;&nbsp;&nbsp; return $o("emailList").getLength();<br />
&nbsp;&nbsp; }<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp; function refreshTab(){<br />
&nbsp;&nbsp; alert()<br />
&nbsp;&nbsp; $o("emailList").getActiveTab().reload()<br />
&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; &lt;/script&gt;</p>
<img src ="http://www.blogjava.net/algz/aggbug/333234.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/algz/" target="_blank">紫蝶∏飛揚↗</a> 2010-09-28 15:20 <a href="http://www.blogjava.net/algz/articles/333234.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>EOS 异常处理,及页面回显异常信息</title><link>http://www.blogjava.net/algz/articles/333233.html</link><dc:creator>紫蝶∏飛揚↗</dc:creator><author>紫蝶∏飛揚↗</author><pubDate>Tue, 28 Sep 2010 07:19:00 GMT</pubDate><guid>http://www.blogjava.net/algz/articles/333233.html</guid><wfw:comment>http://www.blogjava.net/algz/comments/333233.html</wfw:comment><comments>http://www.blogjava.net/algz/articles/333233.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/algz/comments/commentRss/333233.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/algz/services/trackbacks/333233.html</trackback:ping><description><![CDATA[EOS 异常处理,及页面回显异常信息<br />
1.打开异常配置文件:构件包的配置---&gt;resources---&gt;exception---&gt;exception.properties<br />
2.添加异常代码号和异常信息<br />
3.逻辑流中添加异常图元,并选择异常代码号.<br />
4.捕获异常:异常线连接事务回滚<br />
5.事务回滚连接赋值图元:隐藏的EOS异常变量(__exception,注:只有异常时才出现)赋值给页面变量(&lt;b:write&gt;显示)<br />
commonResult/errorMessage=__exception/message
<img src ="http://www.blogjava.net/algz/aggbug/333233.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/algz/" target="_blank">紫蝶∏飛揚↗</a> 2010-09-28 15:19 <a href="http://www.blogjava.net/algz/articles/333233.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>EOS 弹出窗口自适应大小</title><link>http://www.blogjava.net/algz/articles/333028.html</link><dc:creator>紫蝶∏飛揚↗</dc:creator><author>紫蝶∏飛揚↗</author><pubDate>Mon, 27 Sep 2010 02:13:00 GMT</pubDate><guid>http://www.blogjava.net/algz/articles/333028.html</guid><wfw:comment>http://www.blogjava.net/algz/comments/333028.html</wfw:comment><comments>http://www.blogjava.net/algz/articles/333028.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/algz/comments/commentRss/333028.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/algz/services/trackbacks/333028.html</trackback:ping><description><![CDATA[<p align="left">自适应弹出窗口的大小(注:弹出窗口时应在父窗口中设置其较大的宽和高以适应内部数据调整)<br />
&nbsp;&nbsp;&nbsp; function init(){<br />
&nbsp;&nbsp;&nbsp; resize(document.body.scrollWidth+16,document.body.scrollHeight+38);//iframe的实际高度加上弹出窗口的边框<br />
&nbsp;&nbsp;&nbsp; }</p>
<img src ="http://www.blogjava.net/algz/aggbug/333028.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/algz/" target="_blank">紫蝶∏飛揚↗</a> 2010-09-27 10:13 <a href="http://www.blogjava.net/algz/articles/333028.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>EOS 标签比较源值是否存在于目标值列表中,并子典按分隔符显示子典值列表</title><link>http://www.blogjava.net/algz/articles/333024.html</link><dc:creator>紫蝶∏飛揚↗</dc:creator><author>紫蝶∏飛揚↗</author><pubDate>Mon, 27 Sep 2010 02:09:00 GMT</pubDate><guid>http://www.blogjava.net/algz/articles/333024.html</guid><wfw:comment>http://www.blogjava.net/algz/comments/333024.html</wfw:comment><comments>http://www.blogjava.net/algz/articles/333024.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/algz/comments/commentRss/333024.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/algz/services/trackbacks/333024.html</trackback:ping><description><![CDATA[<p>比较源值是否存在于目标值列表中,并子典按分隔符显示子典值列表<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;l:in iterateId="id1" property="paramPagetype" targetValue="checkbox,radio,select-one" seperator=","&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;d:write seperator="," value='&lt;%=((DataObject)pageContext.getAttribute("id1")).getString("paramDbname") %</p>
<p>&gt;'&nbsp; iterateId="id1" property='&lt;%=((DataObject)pageContext.getAttribute("id1")).getString("paramDbname") %&gt;' </p>
<p>dictTypeId='&lt;%=((DataObject)pageContext.getAttribute("id1")).getString("paramDictname") %&gt;' /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/l:in&gt;</p>
<img src ="http://www.blogjava.net/algz/aggbug/333024.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/algz/" target="_blank">紫蝶∏飛揚↗</a> 2010-09-27 10:09 <a href="http://www.blogjava.net/algz/articles/333024.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>eos 表单自定义校验(可用于普通HTML和EOS HTML元素)</title><link>http://www.blogjava.net/algz/articles/333023.html</link><dc:creator>紫蝶∏飛揚↗</dc:creator><author>紫蝶∏飛揚↗</author><pubDate>Mon, 27 Sep 2010 02:07:00 GMT</pubDate><guid>http://www.blogjava.net/algz/articles/333023.html</guid><wfw:comment>http://www.blogjava.net/algz/comments/333023.html</wfw:comment><comments>http://www.blogjava.net/algz/articles/333023.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/algz/comments/commentRss/333023.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/algz/services/trackbacks/333023.html</trackback:ping><description><![CDATA[<br />
&lt;h:select validateAttr="type=checkpc;allowNull=false" name="province" onchange="select();"&gt;&lt;/h:select&gt; <br />
&lt;select name="city" onChange = "select()" validateAttr="type=checkpc;allowNull=false"&gt;&lt;/select&gt;<br />
//所有校验的函数名都必须以"f_check_"开头;错误提示信息用f_alert("元素NAME","错误提示信息")<br />
function f_check_checkpc(obj){&nbsp; <br />
if(obj.value=="请选择省份名"||obj.value=="请选择城市名"){<br />
f_alert(obj,"请正确的选择省份或城市")<br />
return false;<br />
}<br />
return true;<br />
}
<img src ="http://www.blogjava.net/algz/aggbug/333023.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/algz/" target="_blank">紫蝶∏飛揚↗</a> 2010-09-27 10:07 <a href="http://www.blogjava.net/algz/articles/333023.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>EOS 中&lt;r:comboSelect /&gt;动态加载数据</title><link>http://www.blogjava.net/algz/articles/331337.html</link><dc:creator>紫蝶∏飛揚↗</dc:creator><author>紫蝶∏飛揚↗</author><pubDate>Tue, 07 Sep 2010 10:10:00 GMT</pubDate><guid>http://www.blogjava.net/algz/articles/331337.html</guid><wfw:comment>http://www.blogjava.net/algz/comments/331337.html</wfw:comment><comments>http://www.blogjava.net/algz/articles/331337.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/algz/comments/commentRss/331337.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/algz/services/trackbacks/331337.html</trackback:ping><description><![CDATA[动态combobox使用方法<br />
页面:<br />
&lt;r:comboSelect id="comboboxcontractor" queryAction="com.bos.mp.workflow.email.mpemailbiz.getContractorByKind.biz"&nbsp; textField="contractorcn" valueField="contractorname" xpath="contractors"&gt;<br />
&lt;/r:comboSelect&gt;<br />
JS: 利用AJAX取到DataObject[] 数组对象(JS里的entity类型指的就是DataObject[] 数据,记住EOS以XML为中心,所有数据类型都是DataObject泛对象),然后加载entity数据<br />
var myAjax = new Ajax("com.bos.mp.workflow.email.mpemailbiz.getContractorByKind.biz");<br />
myAjax.submit();<br />
var returnNode =myAjax.getValue("root/data")<br />
$id("comboboxcontractor").freshFromEntity(returnNode);<br />
后台:<br />
一个逻辑流,输出为DataObject [] contractors
<img src ="http://www.blogjava.net/algz/aggbug/331337.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/algz/" target="_blank">紫蝶∏飛揚↗</a> 2010-09-07 18:10 <a href="http://www.blogjava.net/algz/articles/331337.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>