Набор данных Srpy, если решение основано на значении из другого набора данных - PullRequest
0 голосов
/ 14 марта 2012

Большое спасибо за чтение этого.Я тоже спрашивал на форумах Adobe без везения.

Я создаю небольшую библиотечную программу для школьных учебников.Я создал базу данных, скажем, с двумя таблицами

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

Я правильно использовал spry, чтобы легко создать таблицу, которая печатает список книг в таблице с нумерацией страниц.сделал необходимые объявления для создания набора данных для ссуд

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 находится в таблице Loansds3.

Таблица создана

<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 голосов
/ 16 марта 2012

Большое спасибо еще раз за чтение.

Я нашел решение, основанное на идеях

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

Я добавил следующий код:

  1. создал css rule

скажем,

.match {

background-color: #0CF;



}
  1. В spry: region добавить класс {cssrule}, который добавляется динамически вскоре после <tr class="{cssrule}" spry:repeat="pv1" spry:select="mySelectClass" spry:hover="hover">

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>
...