jsp中实现一个页面调用另外一个页面所返回的处理结果。

介绍:List页面:带有搜索条件的页面。
SelectList页面:实际显示的由List所设的搜索条件所产生的数据结果。
由于我们的数据列表显示采用2个部分,1:搜索页面部分List页面。2:数据页面部分SelectList页面。
从逆向思维的角度去列出该功能的实现过程:
1:在数据页面(SelectList页面)中的每一条记录去添加一个隐藏域数据,为其在选择后,读取该隐藏域中的值。
例:

 

代码
< input  type ="checkbox"  name ="key"   id ="<c:out value=" ${vo.checkMissionId}"  /> " value=" < c:out  value ="${vo.checkMissionId}"   /> " onClick="setCheckValue(' < c:out  value ="${vo.checkMissionId}"   /> ',' < c:out  value ="${vo.checkMissionId}"   /> ')">
< input  type ="hidden"  id ="td_<c:out value=" ${vo.checkMissionId}" /> " value=" < c:out  value ="${vo.checkMissionId}" /> ">

 

2:在数据页面(SelectList页面)中添加“获得这些被选择的数据”的方法。

 

代码
function  getResultInfo(){
    
var  flag = false ;
    
var  values = "" ;
    
var  results = "" ;
    
var  name = ' td_ ' ;
    
var  checkboxs = document.getElementsByName( " key " );
    
for ( var  i = 0 ;i < checkboxs.length;i ++ ){
        
if (checkboxs[i].checked){
            flag
= true ;
            name
= name + checkboxs[i].value;
            name
= jtrim(name);
            values
= document.getElementById(name).value;
            
if  (i > 0 )
            {
                results
= results + ' , ' + values;
            }
else  {results = values;}
            
            name
= " td_ " ;
          }
    }
    
if (flag)
        
return  results;
    
else
        
return   false ;
}

 

 

3:在List页面中添加调用获取数据,并返回调用页面的方法:

 

function  addSelectedMission()
{
    
var  Results = result.window.getResultInfo();
    
if (Results){
        parent.window.returnValue 
=  Results;
        parent.window.close();
        }
    
else  alert( ' 请选择任务! ' );
}

 

解释:这里的result对象就是SelectList页面。result.window.getResultInfo();就是调用SelectList页面中的获取数据的方法。
其中,这个SelectList是用Frame嵌入到List页面的。其代码如下:

 

代码
   < tr >
    
< td >   <!--  UI Structure Begin "信息列表滚动区"  -->
      
< div  class ="contentDiv" >
        
<!--  UI Structure Begin "信息列表表格"  -->
         
< iframe  name ="result"  id ="result"  scrolling ="yes"   width ="100%"  height ="100%"  src ='/techtask/missionInfo-result.do?method=missionInfoSelectList&vo.workType=<bean:write  name ="missionInfoForm"  property ="vo.workType" /> '  frameborder=0> </ iframe >
        
<!--  UI Structure End "信息列表表格"  -->
      
</ div >
      
<!--  UI Structure End "信息列表滚动区"  -->   </ td >
  
</ tr >

 

  4:在List页面中添加个按钮去触发这个addSelectedMission()的方法。

 

   < td  class ="btnMain"  onClick ="addSelectedMission()" > 添加选中的企业 </ td >

 

  5:在调用的页面添加方法,去调用这个List页面。并对返回的结果进行处理

 

代码
   function  selectMission(){
      
var  url,ops; 
      url 
=   " /techtask/missionInfo-result.do?method=missionInfoList&SelectType=1 "
      ops 
=   " dialogHeight:600px;dialogWidth:800px;center:yes;resizable:yes;status:yes; " ;
    
var  a  =  window.showModalDialog(url, "" ,ops); 
    document.getElementById(
" vo.checkMissionIds " ).value = a; // 对返回的结果进行处理。
}

6:在调用的页面中添加按钮去触发这个事件:

 

< td  class ="btnMain"  onClick ="selectMission()"   > 选择行政任务 </ td >

 

 

 

 

你可能感兴趣的:(jsp)