介紹: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>