Как мы можем скрыть и показать строку панели сетки в ext js 4.2?

Здравствуйте, у меня есть панель сетки со строками, и есть идентификатор имени столбца, который дублируется, соответствует другим значениям, например: -

ID    Type    Status
--------------------------
1      A      True
1      B      True
1      C      False
1      D      False
1      E      False
2      A      True
2      B      False
2      C      False
2      D      False

и мне нужно, как показано ниже: поэтому, когда я нажимаю [Показать все записи..], будет показан идентификатор 1 записи. то же, что и для Id 2 и так далее....

ID    Type    Status
--------------------------
1      A      True
1      B      True
Show all record..
2      A      True
2      B      False
Show all record..

Вывод будет после нажатия на Показать всю запись....

   ID    Type    Status
  ----------------------------
    1      A      True
    1      B      True
    1      C      False
    1      D      False
    1      E      False
    2      A      True
    2      B      False
    Show all record..

Надеюсь, вы понимаете, чего я должен достичь.

Спасибо и с уважением Вик


person user3731362    schedule 11.06.2014    source источник


Ответы (3)


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

См. этот пример: http://docs.sencha.com/extjs/4.2.1/#!/example/build/KitchenSink/ext-theme-neptune/#grouped-grid

person Elias Medeiros    schedule 11.06.2014
comment
Спасибо за ответ, я видел этот пример, но это то, что мне не нужно для реализации. Надеюсь на любую помощь :) - person user3731362; 12.06.2014

Нет такого представления или плагина, который делал бы именно то, что вам нужно (ни в Ext 4.x, ни в Ext 5.x), поэтому для его реализации потребовался бы значительный объем кода.

Самое близкое, что вы можете получить без пользовательского кодирования, это, как советует Элиас, сетка группировки или, возможно, не так близко, сетка дерева.

person Saki    schedule 11.06.2014
comment
Спасибо за ответ и предложения. Что ж, теперь я использую функцию группировки на панели сетки, но можем ли мы применить группировку к тем строкам, в которых имеется более 1 записи, и эти строки должны быть startCollapsed =true иначе false...???? В настоящее время я получаю группировку в каждой строке. - person user3731362; 12.06.2014
comment
Хорошо, теперь рассмотрим мой вопрос. Как мы можем скрыть строки панели сетки на основе условий? например я не хочу показывать те записи, чья зарплата больше 20000 рупий / - и я разместил кнопку, когда я нажму на нее, тогда должны отображаться скрытые строки, чья зарплата больше рупий. 20000р - с уважением Вика - person user3731362; 14.06.2014
comment
Этого можно добиться с помощью фильтрации. Скорее всего, вам понадобится функция пользовательского фильтра при использовании store.filterBy - person Saki; 15.06.2014

Одним из простых способов добиться этого может быть использование единой сетки для каждого идентификатора, что может снизить производительность. Итак, идея такова:

1) Создайте отдельную сетку для каждого идентификатора с отдельным магазином

2) Ограничьте количество строк, которые вы хотите установить видимыми одновременно (используйте getRange() в магазине)

3) Добавьте кнопку, соответствующую каждой сетке, и выполните действие Показать все строки по щелчку, обновите сетку, скройте кнопку (или измените текст, чтобы свернуть, и обработайте событие щелчка)

Примечание: это будет медленно

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

person Vivek Vardhan    schedule 12.06.2014
comment
Хорошо, мое второе условие, как мы можем скрыть строки панели сетки на основе условий? например я не хочу показывать те записи, чья зарплата больше 20000 рупий / - и я разместил кнопку, когда я нажму на нее, тогда должны отображаться скрытые строки, чья зарплата больше рупий. 20000/- . с уважением Вик - person user3731362; 14.06.2014
comment
Вместо диапазона в магазине используйте фильтрацию - person Vivek Vardhan; 14.06.2014