Windows forms datagridview как удалить строку



ublaboo/datagrid: мощный, быстрый, расширяемый, красивый, документированный на английском языке datagrid

@Attanon Я переименовал блок chevron-cion (с опечаткой) в и добавил несколько других блоков:

Отредактировано Павлом Яндой (11 марта 2016 г., 8:18)

@sepo Я начинаю выпуск, и он будет в версии 2.4

Редактировать: это в мастере, если вы были нетерпеливы. 🙂
Правка 2: Ну, не v2.4, а v3. Я ожидаю пометить больше функций, около 2 из них содержат возможный BC brejčík.

Отредактировано Павлом Яндой (11 марта 2016 г., 10:05)

Хм, так что я, наконец, проверил его должным образом и использовал его, изменил шаблоны, чтобы они соответствовали шаблону (metronic) и датпикеру, который мы используем, и я обнаружил следующее:

  • Есть ли лучший способ изменить шаблоны фильтров, чем создать собственный форк? на самом деле это довольно непрактично
  • запоминать фильтры и сортировку в сессии — это здорово, но когда у человека больше датагридов, он неправильно составляет запросы; можно ли каким-то образом задать имя datagrid, которое служило бы «пространством имен» сеанса и, таким образом, у каждого datagrid была бы своя «память»?
  • как перейти к столбцу HTML с помощью пользовательского рендеринга?

В остальном отличная работа!

PS: Я бы рекомендовал перечислять зависимости иначе, чем в Bower (достаточно ссылок на библиотеки в README/документации), чтобы можно было без проблем пользоваться датагридом. Хуже всего было найти happy.js. 🙂

Чтобы кто-то опять не искал 2 часа как я https://github.com/…ljanda/happy…

И еще вопрос, почему в этом случае не работает подтверждение:

Отредактировано Bedna (03.11.2016 12:44)

@Bedna Хм, диалоговое окно подтверждения связано с запросами ajax. В следующей версии я расширю его и, возможно, добавлю префикс: data-confirm ⇒ data-datagrid-confirm .

У меня небольшая проблема с привязками, в частности, я использую LeanMapper.

Каксетка источника данных. Я установил LeanMapper\Fluent → DibiFluent.
И я добавляю столбец:

Что говорит мне неопределенная строка в DibiRow. Если есть совет, буду очень признателен, а вдруг я где-то ошибаюсь 🙂 Так же пробовал менять названия столбцов, но безрезультатно… Либо надо создавать ручное объединение, то что я пишу в запросе работает.

Отредактировано majky358 (03.12.2016 0:52)

@majky358 Поскольку официального LeanQuery/LeanMapper QueryObject не существует, при использовании LeanMapper вы вообще не будете использовать LeanMapper в сетке данных (если вы не реализуете свой собственный источник данных). Таким образом, вы используете только Dibi\Fluent (== DibiFluent) для сетки данных. Можете ли вы показать мне, как вы создаете fluent-запрос?

Я пробовал использовать LeanMapper\Repository->createFluent()…

Отредактировано majky358 (03.12.2016 17:15)

@majky358 Хорошо? 🙂

Да, первый запрос не может работать, если в нем нет необходимой таблицы соединения..

Сейчас я имею дело с чем-то похожим. Я использую объект LeanMapper в качестве источника данных. Дисплей хорошо работает даже с внешними ключами. Однако проблема возникает, если я хочу отсортировать по какому-то столбцу:

Предусмотрена ли более широкая поддержка сущностей или мне нужно использовать DibiFluent? У меня с этим все работает, но опять же, ORM для меня не имеет смысла.

Читайте также:  Как увеличить кэш память компьютера windows 10

@Arty Хммм. Что ж, я еще не подумал о том, чтобы поместить LeanMapper\Entity в поле и указать его в качестве источника данных для сетки данных.

Здесь проблема несколько философская.

Для надлежащей поддержки LeanMapper\Entities необходима оболочка вокруг DibiFluent. Как и в доктрине QueryBuilder. К сожалению, на LeanQuery закашлялся тарос (наверное не хватило времени). Потом где-то была попытка LeanMapper\QueryObject, но это неофициально, и я тоже не знаю, как там с разработкой.

Моя позиция по этому вопросу: Поскольку где-то здесь было написано, что tharos не до этоговремя, а также то, что tharos передал разработку @castamir , лучше всего пропинговать его. Я не считаю LeanMapper мертвым.

В проектах, где я работаю с LeanMapper, я использую Dibi\Fluent в качестве источника данных.

@Arty Вероятно, самое быстрое решение с моей стороны — добавить доступ к свойствам (для ORM) в ArrayDataSource. Я помещу это в выпуск.

Конечно, спасибо за ответ. У меня пока нет проблем с использованием DibiFluent, просто стыдно 🙂
В остальном Grid очень хорош, и я его фанат!

Здравствуйте,
Я хотел спросить, как настроить правильное отображение диакритических знаков в экспортированных файлах CSV?

@Dark0ne 🙂 Отображается «правильно». Если вы хотите изменить выходную кодировку, например, на windows-1250, пожалуйста, откройте тикет на github, я добавлю туда опцию. (На данный момент невозможно изменить кодировку, переданную в конструкторе класса CsvResponse)

Отредактировал Павел Янда (14/03/2016 17:20)

Здравствуйте,
У меня есть еще вопрос :о).
Мне нужно сделать такой листинг, чтобы можно было различать две категории записей с первого взгляда.

Вот как выглядит элемент, который отличает заданные столбцы. Итак, есть две категории «Доходы» и «Расходы». В идеале я хотел бы покрасить все строки данной таблицы другим цветом (или только ячейкой).
Проще говоря, например, строка выписки «Доход» должна иметь зеленый цвет фона, а строка типа «Расходы» должна быть, например, красным. Надеюсь понятно. Я попытался немного поколдовать с переменной в setClass, но она не поддерживается в addColumnText.

Спасибо за любой совет 🙂

@Dark0ne Для строки вы можете использовать обратный вызов и установить класс в соответствии с $item (все

). Он где-то в доке…

@PavelJanda Можно ли изменить групповые действия на основе ввода? Например, я хочу изменить цену на определенную цену для всех отмеченныхзначение.?

@Attanon Я думал об этом, но пока не нуждался. Если будете использовать, добавлю в v3.1, например. Может быть, 3, посмотрим.

@Attanon Я думал об этом, но пока не нуждался. Если будете использовать, добавлю в v3.1, например. Может быть, 3, посмотрим.

Я обязательно буду использовать его. Но примите это как апгрейд, что было бы круто, но не важно, учитывая, что я первый, кто его просит. Когда будет время, постараюсь посмотреть и сделать пиар.

Объект запроса для LeanMapper существует уже давно, см. его ответвление

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

Читайте также:  Как пользоваться связь с windows

@castamir Когда вы его интегрируете (в какую-нибудь стабильную версию), я напишу источник данных для объекта запроса. Доступ к свойствам сущности LeanMapper уже готов в классе Row .

.

Отредактировал Павел Янда (15/03/2016 22:47)

Привет, я столкнулся с другим, когда у меня есть вопрос: (DibiFluent)

Я хочу фильтровать по идентификатору stlpcom (user.id)

Будет проблема: столбец ‘id’ в предложении where неоднозначен, вероятно, это можно решить с помощью пользовательского фильтра where… как-то более элегантно? Я хотел бы сохранить .* Спасибо, у меня есть таблицы xxx, поэтому я ищу какое-нибудь решение 🙂

@majky358 Взгляните на документ, вы можете указать дополнительные параметры для методов DataGrid::addColumnX() и DataGrid::addFilterX(). Среди прочего укажите имя столбца: $grid->addFilterText(«id», «User_ID», ‘user.id’); . Вы можете предоставить текстовому фильтру еще больше столбцов для поиска: $grid->addFilterText(«id», «User_ID», [‘user.id’, ‘user.address’, ‘user.name’]); .

Отредактировано Павлом Яндой (17 марта 2016 г., 7:46)

Новая версия — v3.0.0

Через некоторое время пришел еще одинверсия со значительной порцией новых опций!

Внимание для тех, кто использует Nette\Database: в отдельной ветке есть информация о источнике данных, который умеет парсить нативные sql запросы. Таким образом, никому больше не нужно извлекать все данные из базы данных, когда им нужен более сложный запрос!

  • Добавлено большое встроенное редактирование (документация с образцом, демо выше)
  • При скрытии столбцов теперь отображается интерактивный обзор отображаемых/скрытых столбцов (демонстрация)
  • Добавлен удобный интерфейс для назначения фильтров столбцам (как вы знаете из других сеток — $grid->addColumn()->setFilter() , документация)
  • Добавлены значки календаря для фильтров, отображаемых в таблице
  • Возможно сбросить страницу при изменении сортировки ( DataGrid::setSortableResetPagination() )
  • Удалена некоторая магия (вы больше не можете вызывать Column::icon() , а только setIcon() , аналогично для класса, заголовка и ниже – возможен разрыв BC)
  • Другие мелочи/исправления

Спасибо всем за идеи и сотрудничество!

Отредактировано Павлом Яндой (17/03/2016 11:28)

Я хвалю версию 3, большой встроенный редактор великолепен 🙂

У меня только одна проблема. После обновления у меня не работают фильтры, а только у некоторых сеток. Не могу понять, в чем может быть проблема?

@sibka Меня это поражает. Это происходит и с вами на сайте ublaboo? Попробуйте удалить весь кеш и сеанс браузера (куки, активы) и приложение. Попробуйте примерно описать мне, сколько и каких сеток у вас на странице. Попробую смоделировать такую ​​ситуацию.

datagrid выглядит красиво, и я думаю, что начну использовать его вместо самостоятельно разработанной сетки. Но у меня вопрос, мы все таблицы тянем через API, поэтому БД нет. Для этого подойдет источник данных Array. Но поскольку в некоторых таблицах тысячи строк, API может фильтровать результаты. Должнот.е. назначить какой-нибудь callback на datagrid (который бы принимал фильтры, перфораторы) через который бы заполнялся источник массива данных?

Спасибо за информацию, если получится, попробую сетку

@Blujacker Конечно, есть интерфейс IDataSrouce, который вы реализуете в своем классе, который будет общаться с вашим API. Чтобы изложить идею:

Затем вы передаете источник данных в сетку данных:

Читайте также:  Как снять ошибку windows

Отредактировал Павел Янда (18/03/2016 15:36)

@Blujacker Наверное, это самый чистый способ. Его легко можно было бы обойти разными способами, но я бы так делать не стал.

И, конечно же, фильтры могут иметь собственные обратные вызовы.

PS: Идея тянуть вещи через API мне вполне понравилась, напишу какой-нибудь ApiDataSource — выложу в issue. 😀

Отредактировал Павел Янда (18/03/2016 15:39)

@Blujacker Наверное, это самый чистый способ. Его легко можно было бы обойти разными способами, но я бы так делать не стал.

И, конечно же, фильтры могут иметь собственные обратные вызовы.

PS: Идея тянуть вещи через API мне вполне понравилась, напишу какой-нибудь ApiDataSource — выложу в issue. 😀

Здравствуйте, как мне переписать диалоговое окно подтверждения, пожалуйста? вместо этого добавьте атрибуты

к ссылке на метку данных.

@zoool
1, я переместил имя этого атрибута данных datagrid-confirm в статическую переменную. Так что вы можете изменить его: Action::$data_confirm_attribute_name = ‘my-confirm’ .

2, метод ::setDataAttribute() доступен в классе Action. Или вы имели ввиду другую ссылку? Например, ColumnLink?

@Dark0ne Я отметил версию, в которой можно установить кодировку экспорта CSV, а также разделитель. Теперь этого можно легко добиться с помощью дополнительных параметров метода DataGrid::addExportCsv[Filtered]() :

Отредактировано Павлом Яндой (19 марта 2016 г., 8:46)

Здравствуйте,
Сейчас я решаю проблему, связанную с тем, что у меня установлено значение columnDatetime.рендерер, который берет дату и добавляет к ней X дней в зависимости от того, насколько действителен элемент. (Например, элемент был создан 01.01.2016, он действителен в течение 10 дней ⇒ 01.11.2016 отображается в таблице данных.) Но если я попытаюсь использовать filterDate, он фильтрует по дате создания, потому что это значение, которое находится в источнике данных. Есть ли способ сделать это, кроме как изменить дату в источнике данных?
Спасибо

@PavelJanda
Большое спасибо, этого достаточно, и setDataAtributte работает. Еще хотел спросить, можно ли эти параметры задавать глобально? Какое-то статическое поле с такими параметрами или я хотел спросить, как вы это решаете. Спасибо

@zoool Если вам нужны определенные атрибуты данных для всех столбцов определенного типа (или всех типов), вероятно, лучше всего наследовать от DataGrid и переопределить методы ::addColumn*(). В них вы устанавливаете свои атрибуты данных и вызываете parent::addColumn*() . Затем вы будете использовать свою сетку данных на фабриках.

@Vastlik Это зависит от логики вопроса. На ум приходят две возможности:

1, Уже в запросе базы данных можно, например, отправить уже отредактированную дату (DATE_ADD) в mysql. Это, наверное, лучшее решение, но я говорю, что это зависит от сути сообщения.

2. Вы пишете свое собственное условие фильтрации ( ::addFilterDate()->setCondition(function($fluent, $value) <. >)).

Отредактировано Павлом Яндой (19.03.2016, 17:33)

@PavelJanda Итак, я понял, почему фильтры не работают с некоторыми сетками после обновления до 3.0. Если я использую поле даты для фильтрации, это дает мне ошибку «[SQL Server]DATE не является известным именем предопределенной функции элемента». У меня есть база данных на MS SQL Server 2014.

Поделиться с друзьями
ОС советы