ЛУЧШИЙ САЙТ ДЛЯ ВЕБ-РАЗРАБОТЧИКОВ
AppML. Уроки для начинающих

AppML Списки


В этом разделе мы перечислим записи из базы данных.


В примерах на этой странице используется локальная база данных SQL.
Локальные базы данных SQL не работают в IE или Firefox. Используйте Chrome или Safari.

Создать новую модель

В предыдущем разделе вы использовали модель для создания базы данных.

Теперь создайте новую модель, включая определения фильтров и сортировки:

model_customerslist.js

{
"rowsperpage" : 10,
"database" : {
    "connection" : "localmysql",
    "sql" : "SELECT * FROM Customers",
    "orderby" : "CustomerName"
},
"filteritems" : [
    {"item" : "CustomerName", "label" : "Customer"},
    {"item" : "City"},
    {"item" : "Country"}
],
"sortitems" : [
    {"item" : "CustomerName", "label" : "Customer"},
    {"item" : "City"},
    {"item" : "Country"}
]
}

Используйте модель в своем приложении:

Пример

<div appml-data="local?model=model_customerslist">
<h1>Клиенты</h1>
<div appml-include-html="inc_listcommands.html"></div>
<table class="w3-table-all">
  <tr>
    <th>Клиент</th>
    <th>Город</th>
    <th>Страна</th>
  </tr>
  <tr appml-repeat="records">
    <td>{{CustomerName}}</td>
    <td>{{City}}</td>
    <td>{{Country}}</td>
  </tr>
</table>
</div>
Попробуйте сами »

Создать шаблон HTML-фильтра

Создайте HTML для ваших фильтров:

inc_filter.html

<div id="appml_filtercontainer" class="w3-container w3-light-grey w3-section w3-padding-large" style="display:none;">
  <span id="appmlbtn_queryClose" onclick="this.parentNode.style.display='none';" class="w3-button w3-large w3-right">&times;</span>
  <h2>Filter</h2>
  <div id="appml_filter">
    <div appml-repeat="filteritems">
      <div class="w3-row">
        <div class="w3-col m4">
          <label>{{label||item}}:</label>
        </div>
        <div class="w3-col m2">
          <input id="appml_datatype_{{item}}" type='hidden'>
          <select id="appml_operator_{{item}}" class="w3-select w3-border">
            <option value="0">=</option>
            <option value="1">&lt;&gt;</option>
            <option value="2">&lt;</option>
            <option value="3">&gt;</option>
            <option value="4">&lt;=</option>
            <option value="5">&gt;=</option>
            <option value="6">%</option>
          </select>
        </div>
        <div class="w3-col m6">
          <input id="appml_query_{{item}}" class="w3-input w3-border">
        </div>
      </div>
    </div>
  </div>
  <div id="appml_orderby">
    <h2>Order By</h2>
    <div class="w3-row">
      <div class="w3-col m5">
        <select id='appml_orderselect' class="w3-select w3-border">
          <option value=''></option>
          <option appml-repeat="sortitems" value="{{item}}">{{label || item}}</option>
        </select>
      </div>
      <div class="w3-col m7">
        ASC <input type='radio' id="appml_orderdirection_asc" name='appml_orderdirection' value='asc' class="w3-radio">
        DESC <input type='radio' id="appml_orderdirection_desc" name='appml_orderdirection' value='desc' class="w3-radio">
      </div>
    </div>
  </div>
  <br>
  <button id="appmlbtn_queryOK" type="button" class="w3-btn w3-green">OK</button>
</div>

Сохраните HTML-код фильтра в файле с собственным именем, например "inc_filter.html".

Включите HTML-фильтр в свой прототип с помощью appml-include-html:

Пример

<div appml-data="local?model=model_customerslist">
<h1>Клиенты</h1>
<div appml-include-html="inc_listcommands.html"></div>
<div appml-include-html="inc_filter.html"></div>
<table class="w3-table-all">
  <tr>
    <th>Клиент</th>
    <th>Город</th>
    <th>Страна</th>
  </tr>
  <tr appml-repeat="records">
    <td>{{CustomerName}}</td>
    <td>{{City}}</td>
    <td>{{Country}}</td>
  </tr>
</table>
</div>
Попробуйте сами »