2012-02-29 66 views
0

我正在开发一个Struts 2应用程序。我有一个JSP页面,其中我正在迭代表中的对象列表,其中包含对象中最少的信息,每行都有一个复选框,通过选中复选框并单击打印按钮我需要打印所选行的所有信息。 所以我调用了关于打印按钮的java脚本函数,并收集了与行关联的所有唯一ID并将其设置为隐藏字段,然后我打开了一个弹出式子窗口,如:window.open(“/../ ../ printInfo.jsp”, “浏览”,...)。如何将对象列表传递给子窗口

在子窗口中,我使用opener.document.getElementById(...) 得到隐藏的字段值,但我没有得到我需要在子窗口中迭代所有信息的对象列表(选定的行只要)。有没有什么办法可以在window.open()方法中调用动作而无需在弹出窗口中获取所有对象列表。

还是有其他方法可以快速完成任务。

任何帮助/代码/建议/评论将不胜感激。

谢谢。

+0

你可以发布一些代码,或更好的,创建一个jsFiddle? – 2012-02-29 17:40:14

+0

我有一个userList – BIdesi 2012-02-29 17:47:57

+0

我有一个用户列表,其中用户具有有关用户详细信息,在我创建的行动中的信息列表 userList =来自数据库的数据,并且我为它创建了getter和setter。在jsp中迭代userList,比如和迭代器里面的等等,并带有一个复选框和一个输入按钮我调用了 – BIdesi 2012-02-29 17:56:52

回答

0

的Java脚本代码:不回答只是代码snipt-

function printAll(){ 
    var checkBoxLength = document.getElementsByName('ids'); 
    var checkedIds = ""; 
    for(var i = 0;i<checkBoxLength.length;i++){ 
     if(checkBoxLength[i].checked){ 
      checkedIds += i+","; 
     } 
    } 
     //all the selected checkboxe ids 
    checkedIds = checkedIds.substring(0,checkedIds.length-1); 
    if(checkedIds.length <=0){ 
     alert("Please select atleast one row to print."); 
     return false; 
    } 
     //value set to hidden field so that it can access to popup window 
    document.getElementById("checkedIdField").value = checkedIds; 
     //trying to assign a list to hidden field but getting error 
    document.getElementById("medicationList").value = <s:property value="medicalRecordClient.patientMedicationEntries"/>; 
    childWindow = window.open("/cascade/pages/jsp/medicalrecord/print_medication_detail.jsp","Browse","left=200,top=200,width=700,height=530,toolbar=0,resizable=0"); 

} 
1
<table cellspacing="0" cellpadding="3" border="1" 
        align="center" bgcolor="#74f0a8" width="90%"> 
    <font size="4" color="#c7461e"><b>CHEQUE ACTIVATION REPORT BETWEEN : <s:property value='strChequeFrom' /> AND : 
     <s:property value='strChequeTo' /> </b> </font> 
     <tr> 
      <td colspan="7" align="center" width="10%"> 
       <b>SL NO</b> 
      </td> 
      <td align="center"> 
       <b>AGENCY</b> 
      </td> 
      <td align="center"> 
       <b>CLIENT ADDRESS</b> 
      </td> 
      <td align="center"> 
       <b>CHEQUE NO</b> 
      </td> 
      <td align="center"> 
       <b>CHEQUE DATE</b> 
      </td> 
      <td align="center"> 
       <b>CHEQUE AMOUNT</b> 
      </td> 
      <td align="center"> 
       <b>ACTIVATION</b> 
      </td> 
     </tr> 
     <s:iterator status="rowstatus" value="lstChequeDateReportDetail"> 
     <tr> 
      <td colspan="7" align="center" width="10%"> 
       <font size="3"><s:property value="jsp_sl_no" /> </font> 
      </td> 
      <td align="left"> 
       <s:property value="strAgencyCode" /> 
      </td> 
      <td align="left"> 
       <s:property value="strClient" /> 
      </td> 
      <td align="center"> 
       <s:property value="strChequeNo" /> 
      </td> 
      <td align="center"> 
       <s:property value="strChequeDate" /> 
      </td> 
      <td align="center"> 
       <s:property value="strPaymanetAmount" /> 
      </td> 
      <td align="center"> 
       <table> 
      <tr> 
       <td> 
        <s:checkbox name="strActivationCheque" fieldValue="%{strChequeNo}" value="false"/> 
       </td> 
      </tr> 
      </table> 
     </td> 
    </tr> 
    </s:iterator> 
    <tr> 
     <td> 
      <s:submit value="Activate"></s:submit> 
     </td> 
    </tr> 
</table> 

通过使用此你会得到检查没有发现基于checkbox..By的真正价值这一点,你在行动中获得价值形成。