Oracle
 sql >> база данни >  >> RDS >> Oracle

правейки моята таблична форма динамична

Можете да създавате динамични действия върху таблични полета на формуляри, но трябва да знаете някои неща на Javascript / jQuery / DOM, тъй като това не може да се направи декларативно, както може с елементи на страница.

Като пример създадох проста таблична форма на EMP таблицата:

С помощта на инструмента Inspect Element на браузъра мога да видя, че HTML за полето Ename на ред 3 изглежда така:

<input type="text" name="f03" size="12" maxlength="2000" value="Ben Dev"
    class="u-TF-item u-TF-item--text " id="f03_0003" autocomplete="off">

Съответните битове, които трябва да се отбележат, са името "f03" и ID "f03_0003". За всички полета на табличен формуляр името указва колоната и е едно и също за всички полета в тази колона. Идентификаторът се състои от името плюс низ за представяне на реда - в този случай "_0003" за представяне на ред 3.

По подобен начин всички полета на Hiredate се наричат ​​„f004“ и имат идентификатори като „f04_0003“.

Въоръжени с тази информация можем да напишем динамично действие. Например, да кажем, че когато Ename е празно, Hiredate трябва да бъде скрито, в противен случай да се покаже. В псевдокод:

всеки път, когато се промени елемент с име "f03", елементът с име "f04" на същия ред трябва да бъде скрит или показан.

Така че можем да създадем синамично действие с условие When като това:

  • Събитие =Промяна
  • Тип селекция =jQuery селектор
  • jQuery селектор =input[name="f03"]

т.е. всеки път, когато се промени вход, чието име е "f03", задействайте това действие.

Извършеното действие ще трябва да бъде „Изпълнение на Javascript код“, а кодът може да бъде:

// Get the ID of this item e.g. f03_0004
var this_id = $(this.triggeringElement).attr('id');
// Derive the ID of the corresponding Hiredate item e.g. f04_0004
var that_id = 'f04'+this_id.substr(3);

if ($(this.triggeringElement).val() == "") {
    // Ename is empty so hide Hiredate
    $('#'+that_id).closest('span').hide();
} else {
    // Ename is not empty so show Hiredate
    $('#'+that_id).closest('span').show();
}

Тъй като Hiredate е инструмент за избор на дата, трябваше да скрия/покажа както самото поле, така и иконата му за избор на дата. Избрах да направя това, като скрия/покажа диапазона, който ги съдържа и двете. Този код може да бъде написан по много различни начини.

Бихте могли да приложите подобни техники, за да постигнете целите си, но както виждате, не е чак толкова лесно.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Какво е курсор в oracle

  2. Не може да се достигне до съхранена процедура на oracle с помощта на .Net EF(2.2) Core модел на хранилище

  3. Експортиране на CLOB в текстов файл с помощта на Oracle SQL Developer

  4. Представяне на IPv4/IPv6 адреси в Oracle

  5. Използване на DISTINCT за конкретни колони