0

我有显示亚马逊“订单”列表和“订单#”作为链接的 jsp。当我单击链接时,我想在弹出窗口中显示更多详细信息。

我的问题是如何在弹出 jsp 中获取所选链接的详细信息,而无需使用父页面中的相同列表再次访问数据库。

我正在使用<s:subset source="devOrdLst" count="1" start="">我假设如果我得到的起始值只是索引,那么我可以显示该点击订单的详细信息#。

技术用到了jQuery、Struts2、java。请不要推荐任何插件。

父页面:

<s:iterator value="orderList" id="orders">
   <tr>
      <td><a href="#" id=orderid><s:property value="orderId"/></a></td>
      <td><s:property value="orderDate"/></td>
      <td><s:property value="CustomerName"/></td>
   </tr>
</s:iterator>

在基于所选 orderId 的弹出窗口中,我已按索引显示orderList中的详细信息,而无需访问服务器。

如何使用 jQuery 将其从父窗口传递到弹出窗口。

先感谢您。

4

1 回答 1

0

它应该是这样的:

<s:iterator value="orderList" status="status">
   <tr>
      <td>
          <%-- action maybe a jsp page or java class --%>
          <s:url var="url" action="detail">
            <s:param name="index" value="#status.index"/>
            <s:param name="orderId" value="%{orderId}"/>
          <a href="%{url}">
            <s:property value="orderId"/>
          </a>
      </td>
      <td><s:property value="orderDate"/></td>
      <td><s:property value="CustomerName"/></td>
   </tr>
</s:iterator>

这样您就可以传递您的 orderId 和索引...

更新 1

如果您真的不想再次调用服务器。你可以试试这个。我这里没有环境,所以你必须自己做。

<s:iterator value="orderList" status="status">
   <tr id="<s:property value="%{orderId}">">
      <td>
          <%-- action maybe a jsp page or java class --%>
          <a href="#" id="orderId">
            <s:property value="orderId"/>
          </a>
      </td>
      <td><s:property value="orderDate"/></td>
      <td><s:property value="CustomerName"/></td>
   </tr>
</s:iterator>
<div id="popup"></div>
<script>
  $("a#orderId").click(function(){
    var orderId = this.val();
    var result= "<ul>";
    $('tr[id=orderId] td').each(function(){
        result.append("<li>" + this.html() + "</li>");
    });
    result.append("</ul>");
    $('#popup').html(result);
  });
</script>
于 2012-06-27T19:35:49.367 回答