Srpy数据集如果基于来自不同数据集的值进行决策

时间:2012-03-14 18:43:31

标签: spry

非常感谢您阅读本文。 我也在Adobe论坛上问过没有运气。

我正在为学校书籍建立一个小型图书馆应用程序。 我创建了一个数据库,让我们说2个表

Books ( ID_Book , Writer , Title , Copies) and
Loans ( ID_Book , Load_ID , Loan_Date ) etc

我使用了正确的spry来轻松创建一个表,该表在表中打​​印书单 与分页。

var ds1 = new Spry.Data.XMLDataSet("ajaxquery.php", "root/row", {sortOnLoad: "Writer", sortOrderOnLoad: "ascending"});
ds1.setColumnType("ID_Book", "number");
var pv1 = new Spry.Data.PagedView( ds1 ,{ pageSize:10 });
var pv1PagedInfo = pv1.getPagingInfo();
pv1.setColumnType("ID_Book", "number");

我已经做了必要的声明来生成贷款的数据集

var ds3 = new Spry.Data.XMLDataSet("ajaxallloans", "root/row", {sortOnLoad: "ID_Book", sortOrderOnLoad: "ascending"});
ds3.setColumnType("ID_Book", "number");
ds3.setColumnType("ID_Dan", "number");

我想找到一种方法来更改BOOKS表的表格行颜色如果ID_Book在Loans表中 - ds3。

创建表

<div spry:region="pv1" id="bibliapv">

<div spry:state="loading" class="loading" >Loading...</div>  

<div spry:state="ready">
  <table>
    <tr >

      <th   width="75"  spry:sort="ID_Book"> Book No</th>
      <th   width="123" spry:sort="Writer">Writer </th>
etc...

    </tr>


    <tr spry:repeat="pv1" spry:select="mySelectClass" spry:hover="hover">
      <td >{ID_Book}</td>
      <td>{writer}</td>
  etc ..
  </tr>

</table>
  </div>
</div>
<div>

再次感谢。 迪诺斯 - 希腊

1 个答案:

答案 0 :(得分:0)

再次感谢阅读。

我找到了一个基于

中提出的想法的解决方案

labs.adobe.com/technologies/spry/samples/data_region/CustomColumnsSam ple.html

我添加了以下代码:

  1. 创建了一条css规则
  2. 让我们说

    .match {
    
    background-color: #0CF;
    
    
    
    }
    
    1. 在spry:region中添加<tr class="{cssrule}" spry:repeat="pv1" spry:select="mySelectClass" spry:hover="hover">
    2. 之后不久动态添加的类{cssrule}

      3

      然后就在关闭标签之前(你可以把它放在代码中)

       <script type="text/javascript">
      
        ds2.addObserver({
      
          onPostLoad:function( ds2, data ){
      
          var data = ds2.getData();
      
          var pv1data = pv1.getData();
      
      
      
      for( var i = 0; i < pv1data.length; i++ )
      
        {            
      
            for (var j =0 ; j< data.length ; j++)
      
          {     if ((data[j].Writer).toString()== (pv1data[i].Writer).toString() )   //or whatever you like!
      
              {pv1data[i].cssrule="match";   }
      
          }
      
         }
      
      
      
        }
      
      });
      </script>