Расширения от HimikLab
Re: Расширения от HimikLab
Спасибо! )
Re: Расширения от HimikLab
Как такой вариант?Nill писал(а):Быть может нужно работать со всей таблицей БД? Если есть постраничная разбивка и мы попробуем отсортировать на второй странице, то снова получим 0,1 и так далее.
Или, как вариант, использовать текущие значения sortOrder в отсортированном гриде, например 2, 8, 10. При перетаскивании 10 вверх, остальные смещаются вниз 2 к 8, 8 становиться 10.
https://github.com/himiklab/yii2-sortab ... 0da39f9101
Re: Расширения от HimikLab
Спасибо! Я-то уже пересортировку добавил, не стал мучатся) Попробую Ваш алгоритм.
A.A.
Re: Расширения от HimikLab
Доброго времени суток!
Столкнулся с проблемами при использовании виджета jqgrid.
А именно виджет рендерится (запрос к серверу http://server/frontend/web/index.php?r=country/esmview), но не получает данные из таблицы из JqGridActiveAction. Или выполняется JqGridActiveAction, но в результате выводятся данные в json формате без отображения виджета (запрос к серверу http://server/frontend/web/index.php?r= ... on=request). Перепробовал различные варианты, поискал ответы по сети, но ничего не нашел. Подскажите где я делаю, что то неправильно/ Буду очень признателен
Таблицу с данными и модель использовал из обучения (http://www.yiiframework.com/doc-2.0/gui ... bases.html)
Исходный код контроллера CountryController.php
исходный код easmview.php
Столкнулся с проблемами при использовании виджета jqgrid.
А именно виджет рендерится (запрос к серверу http://server/frontend/web/index.php?r=country/esmview), но не получает данные из таблицы из JqGridActiveAction. Или выполняется JqGridActiveAction, но в результате выводятся данные в json формате без отображения виджета (запрос к серверу http://server/frontend/web/index.php?r= ... on=request). Перепробовал различные варианты, поискал ответы по сети, но ничего не нашел. Подскажите где я делаю, что то неправильно/ Буду очень признателен
Таблицу с данными и модель использовал из обучения (http://www.yiiframework.com/doc-2.0/gui ... bases.html)
Исходный код контроллера CountryController.php
Код: Выделить всё
<?php
namespace frontend\controllers;
use himiklab\jqgrid\actions\JqGridActiveAction;
use yii\web\Controller;
use yii\data\Pagination;
use app\models\Country;
use yii\db\ActiveQuery;
use yii\base\View;
class CountryController extends Controller
{
public function actionIndex()
{
$query = Country::find();
$pagination = new Pagination([
'defaultPageSize' => 5,
'totalCount' => $query->count(),
]);
$countries = $query->orderBy('name')
->offset($pagination->offset)
->limit($pagination->limit)
->all();
return $this->render('index', [
'countries' => $countries,
'pagination' => $pagination,
]);
}
public function actionEsmview(){
return $this->render('esmview');
}
public function actions(){
return ['grid'=> [
'class' => JqGridActiveAction::className(),
'model' => Country::className(),
'scope' => function ($query) {
/** @var \yii\db\ActiveQuery $query */
$query->select(['code', 'name', 'population']);
}
],
];
}
}
?>
Код: Выделить всё
<?php
use himiklab\jqgrid\JqGridWidget;
use yii\helpers\Url;
echo JqGridWidget::widget([
'requestUrl' => Url::toRoute('country/grid'),
'gridSettings' => [
'colNames' => ['Code', 'Name', 'Population'],
'colModel' => [
['name' => 'code', 'index' => 'code', 'editable' => true],
['name' => 'name', 'index' => 'name', 'editable' => true],
['name' => 'population', 'index' => 'population', 'editable' => true]
],
'rowNum' => 5,
'autowidth' => true,
'height' => 'auto',
],
'pagerSettings' => [
'edit' => true,
'add' => true,
'del' => true,
'search' => ['multipleSearch' => true]
],
'enableFilterToolbar' => true,
])
?>
Re: Расширения от HimikLab
Нашел решение.
Надо поправить исходный код в файле JqGridWidget.php:
на следующий:
Так надо поправить все запросы по коду дальше.
Надо поправить исходный код в файле JqGridWidget.php:
Код: Выделить всё
$gridSettings['url'] = $this->requestUrl . '?action=request';
Код: Выделить всё
$gridSettings['url'] = $this->requestUrl . '&action=request';
Re: Расширения от HimikLab
Выделил в отдельное расширение используемый во многих моих проектах модифицированный GridView
yii2-gridview-ajaxed-widget
В чём его особенности:
Все манипуляции происходят в модальном окне без перехода на другую страницу.
Обновления грида через pajax.
Банально получается более лаконичный CRUD код.
Всякие дополнительные фичи вроде вывода сообщения или возврата файла после отсылки формы.
yii2-gridview-ajaxed-widget
В чём его особенности:
Все манипуляции происходят в модальном окне без перехода на другую страницу.
Обновления грида через pajax.
Банально получается более лаконичный CRUD код.
Всякие дополнительные фичи вроде вывода сообщения или возврата файла после отсылки формы.