При этом если полностью очистить историю в яндекс браузере, все на некоторое всеря начинает работать адекватно
прикрепляю код грида и js
еще вставил Js, думал поможет для обновления грида но не сработало
прикрепляю код грида и js
| Код |
|---|
<?
use Bitrix\Main\Grid\Options as GridOptions;
use Bitrix\Main\UI\PageNavigation;
use \Bitrix\Main\Type\DateTime as DT;
use Bitrix\Main\Loader;
use Bitrix\Highloadblock as HL;
CModule::IncludeModule("fileman");
CMedialib::Init();
$grid_id = 'REESTR_GRID';
$filter_id = 'REESTR_GRID';
$APPLICATION->IncludeComponent('bitrix:main.ui.filter', '', [
'FILTER_ID' => $filter_id,
'GRID_ID' => $grid_id,
'FILTER' => [ //поля фильтра
['id' => 'UF_ENTERPRISES', 'name' => 'Предприятие производитель', 'type' => 'text',],
['id' => 'UF_VID_SM', 'name' => 'Вид сварочных материалов', 'type' => 'list', 'items' => [
'Электроды штучные стальные покрытые' => 'Электроды штучные стальные покрытые',
'Стальная сплошная проволока' => 'Стальная сплошная проволока',
'Сварочная порошковая проволока' => 'Сварочная порошковая проволока',
'Проволока из титана и титановых сплавов' => 'Проволока из титана и титановых сплавов',
'Проволока из меди и сплавов на медной основе' => 'Проволока из меди и сплавов на медной основе',
'Проволока из алюминия и алюминиевых сплавов' => 'Проволока из алюминия и алюминиевых сплавов',
'Флюс сварочный плавленный' => 'Флюс сварочный плавленный',
'Флюс сварочный керамический' => 'Флюс сварочный керамический',
], 'params' => ['multiple' => 'N']],
['id' => 'UF_MARK_SM', 'name' => 'Марка сварочных материалов', 'type' => 'text'],
['id' => 'UF_ND', 'name' => 'Нормативные документы', 'type' => 'text'],
['id' => 'UF_PROVIDER', 'name' => 'Поставщик', 'type' => 'text'],
['id' => 'UF_NUMBER', 'name' => 'Номер документа', 'type' => 'text'],
['id' => 'UF_FORMA', 'name' => 'Форма Документа', 'type' => 'list', 'items' => ['СОСМ' => 'СОСМ', 'СПП' => 'СПП'], 'params' => ['multiple' => 'N']],
],
'ENABLE_LIVE_SEARCH' => true,
'ENABLE_LABEL' => true, //лейблы полей фильтра
//'VALUE_REQUIRED_MODE' => true,
]);
$filter = [];
$filterOption = new Bitrix\Main\UI\Filter\Options($filter_id); //сущность фильтра
$filterData = $filterOption->getFilter([]); // получение данных фильтрации
foreach ($filterData as $k => $v) { //перебор данных фильтрации
if($k == 'FIND' && $v){ //если мы включаем стандартое отображение, то в обычном поиске работает фильтрация по производителю
$filter['UF_ENTERPRISES'] = "%".$filterData['FIND']."%";
}
}
if($filterData['UF_ENTERPRISES'])
$filter['UF_ENTERPRISES'] = "%".$filterData['UF_ENTERPRISES']."%";
if($filterData['UF_VID_SM']) //если заполнено поле вид (выпадающее), то ищем точное совпадение
$filter['UF_VID_SM'] = $filterData['UF_VID_SM'];
if($filterData['UF_NUMBER']) //если номер заполнен, то ищем совпадение частичное
$filter['UF_NUMBER'] = "%".$filterData['UF_NUMBER']."%";
if($filterData['UF_ND'])
$filter['UF_ND'] = "%".$filterData['UF_ND']."%";
if($filterData['UF_MARK_SM'])
$filter['UF_MARK_SM'] = "%".$filterData['UF_MARK_SM']."%";
if($filterData['UF_FORMA'])
$filter['UF_FORMA'] = $filterData['UF_FORMA'];
$grid_options = new GridOptions($grid_id);//сущность параметров грида
$sort = $grid_options->GetSorting(['sort' => ['ID' => 'DESC'], 'vars' => ['by' => 'by', 'order' => 'order']]); // сущность сортировки
$nav_params = $grid_options->GetNavParams(); //сущность параметров навигации
$pageSizes = [ //размеры страниц
['NAME' => "5", 'VALUE' => '5'],
['NAME' => '10', 'VALUE' => '10'],
['NAME' => '20', 'VALUE' => '20'],
['NAME' => '50', 'VALUE' => '50'],
['NAME' => '100', 'VALUE' => '100']
];
$nav = new PageNavigation($grid_id); //сущность навигации
$nav->allowAllRecords(true)
->setPageSize($nav_params['nPageSize'])
->initFromUri();
if ($nav->allRecordsShown())
$nav_params = false;
else
$nav_params['iNumPage'] = $nav->getCurrentPage();
$getListOptions = array(
"select" => ["ID", "UF_ENTERPRISES", "UF_VID_SM", "UF_MARK_SM", "UF_ND", "UF_FORMA", "UF_NUMBER"], //array("*"),
"order" => $sort['sort'],
"filter" => $filter,
"offset" => $nav->getOffset(), //из объекта пагинации добавляем смещение для HighloadBlock
"limit" => $nav->getLimit(),
'runtime' => $runtimes ? $runtimes : '',
'count_total' => true
);
Loader::includeModule("highloadblock");
$hlblock = HL\HighloadBlockTable::getById(2)->fetch();
$entity = HL\HighloadBlockTable::compileEntity($hlblock);
$entity_data_class = $entity->getDataClass();
$reestrData = $entity_data_class::getList($getListOptions);
$reestrCount = $reestrData->getCount();
$reestrData = $reestrData->fetchAll();
$nav->setRecordCount($reestrCount);
$arCol= CMedialibCollection::GetList(array('arFilter' => array('ACTIVE' => 'Y')));
//Получения всех изображений коллекции с ID равным 1
$arItems= CMedialibItem::GetList(2);
//Заполним массив путей к картинкам
$arPDFPath= array();
$arPDFNames = array();
foreach ($arItems as $arItem){
$pdfPath= $arItem['PATH'];
$arPDFPath[]= $pdfPath;
$pdfName= $arItem['NAME'];
$arPDFNames[] = $pdfName;
};
foreach($reestrData as $k => $row) {
if($filterData){
//$img_path = CFile::GetPath($row["UF_PDF"]);
foreach($arPDFPath as $v => $path){
if($arPDFNames[$v] == $row['UF_NUMBER'].'.pdf'){
$rowPdfPath = $path;
$icon = $rowPdfPath ? '<img width="18" alt="иконка пдф" src="/upload/upload.gif" height="17" title="иконка пдф">' : '';
}
}
$list[] = [
'data' => [
"ID" => $row['ID'],
"ENTERPRISES" => $row['UF_ENTERPRISES'],
"FORM" => $row['UF_FORMA'],
"NUMBER" => $row['UF_NUMBER'],
"MARK_SM" => $row['UF_MARK_SM'],
"VID_SM" => $row['UF_VID_SM'],
//"TYPE" => $row['UF_TYPE'],
"ND" => $row['UF_ND'],
//"STATUS" => $row['UF_STATUS'] == 1 ? 'Действует' : 'Не действует',
"PDF" => '<a target="_blank" href="' . $rowPdfPath . '">'.$icon.' </a>',
//"PDF" => $img_path
//href="/upload/uf/972/67wjoojnnu8bhic3ocwlzfq30os7a8jt.pdf"
],
'default_action' => [
"href" => '/bitrix/admin/highloadblock_rows_list.php?ENTITY_ID=3&lang=ru',
"title" => 'Редактировать элемент',
],
'actions' => [
[
'text' => 'Редактировать',
'default' => true,
'onclick' => "document.location.href='/test/test/edit.php?key=$row[ID]'"
],
[
'text' => 'Удалить',
'default' => true,
'onclick' => "document.location.href='/test/test/delete.php?key=$row[ID]'"
],
]
];
}
$path = "";
$icon = "";
}
$columns = [];
$columns[] = ['id' => 'ENTERPRISES', 'name' => 'Предприятие производитель', 'sort' => 'UF_ENTERPRISES', 'content' => 'Предприятие производитель', 'title' => 'Предприятие производитель', 'column_sort' => 100, 'default' => true];
$columns[] = ['id' => 'VID_SM', 'name' => 'Вид СМ', 'sort' => 'UF_VID_SM', 'content' => 'Вид СМ', 'title' => 'Вид сварочных материалов', 'column_sort' => 200, 'default' => true];
$columns[] = ['id' => 'MARK_SM', 'name' => 'Марки СМ', 'sort' => 'UF_MARK_SM', 'content' => 'Марки СМ', 'title' => 'Марки сварочных материалов', 'column_sort' => 300, 'default' => true];
$columns[] = ['id' => 'ND', 'name' => 'Нормативная документация', 'sort' => 'UF_ND', 'content' => 'Нормативная документация', 'title' => 'Нормативная документация', 'column_sort' => 400, 'default' => true];
$columns[] = ['id' => 'FORM', 'name' => 'Форма документа', 'sort' => 'UF_FORMA', 'content' => 'Форма документа', 'title' => 'Форма документа', 'column_sort' => 500, 'default' => true];
$columns[] = ['id' => 'NUMBER', 'name' => 'Номер документа', 'sort' => 'UF_NUMBER', 'content' => 'Номер документа', 'title' => 'Номер документа', 'column_sort' => 600, 'default' => true];
$columns[] = ['id' => 'PDF', 'name' => 'Документ', 'sort' => '', 'content' => 'Документ', 'column_sort' => 700, 'default' => true];
//$columns[] = ['id' => 'TYPE', 'name' => 'Тип СМ', 'sort' => 'TYPE', 'content' => 'Тип СМ', 'title' => 'Тип СМ', 'column_sort' => 800, 'default' => true];
//$columns[] = ['id' => 'STATUS', 'name' => 'Статус', 'sort' => 'STATUS', 'content' => 'Статус', 'title' => 'Статус', 'column_sort' => 900, 'default' => true];
$gridParams = [
'GRID_ID' => $grid_id,
'COLUMNS' => $columns,
'ROWS' => $list,
'FOOTER' => [
'TOTAL_ROWS_COUNT' => $nav->getRecordCount(),
],
'SHOW_ROW_CHECKBOXES' => $USER->isAdmin() ? true : false,
'NAV_OBJECT' => $nav,
'AJAX_MODE' => 'Y',
'AJAX_ID' => \CAjax::getComponentID('bitrix:main.ui.grid', '.default', ''),
'PAGE_SIZES' => $pageSizes,
'AJAX_OPTION_JUMP' => 'N',
'SHOW_CHECK_ALL_CHECKBOXES' => false,
'SHOW_ROW_ACTIONS_MENU' => $USER->isAdmin() ? true : false,
'SHOW_GRID_SETTINGS_MENU' => $USER->isAdmin() ? true : false,
'SHOW_NAVIGATION_PANEL' => true,
'SHOW_PAGINATION' => true,
'SHOW_SELECTED_COUNTER' => $USER->isAdmin() ? true : false,
'SHOW_TOTAL_COUNTER' => $USER->isAdmin() ? true : false,
'SHOW_PAGESIZE' => true,
'SHOW_ACTION_PANEL' => $USER->isAdmin() ? true : false,
'ALLOW_COLUMNS_SORT' => true,
'ALLOW_COLUMNS_RESIZE' => true,
'ALLOW_HORIZONTAL_SCROLL' => true,
'ALLOW_SORT' => true,
'ALLOW_PIN_HEADER' => true,
'AJAX_OPTION_HISTORY' => 'N',
'ACTION_PANEL' => [
'GROUPS' => [
'TYPE' => [
'ITEMS' => [
[
'ID' => 'delete',
'TYPE' => 'BUTTON',
'TEXT' => 'Удалить',
'CLASS' => 'icon remove',
//'ONCHANGE' => $onchange->toArray()
],
],
]
],
],
];
$APPLICATION->IncludeComponent('bitrix:main.ui.grid', '', $gridParams);
?>
|
еще вставил Js, думал поможет для обновления грида но не сработало
| Код |
|---|
BX.ready(function() {
let grid = BX.Main.gridManager.getInstanceById('REESTR_GRID');
let reloadParams = { apply_filter: 'Y', clear_nav: 'Y' };
if (grid.hasOwnProperty('instance')){
grid.instance.reloadTable('POST', reloadParams);
}
});
|