Your <item name="enabled">
value is false. First of all, set true value as like below :
vendor_module_test_listing.xml :
<item name="editorConfig" xsi:type="array">
<item name="selectProvider" xsi:type="string">vendor_module_test_listing.vendor_module_test_listing.vendor_module_test_columns.ids</item>
<item name="enabled" xsi:type="boolean">true</item>
<item name="indexField" xsi:type="string">entity_id</item>
<item name="clientConfig" xsi:type="array">
<item name="saveUrl" xsi:type="url" path="*/*/inlineEdit"/>
<item name="validateBeforeSave" xsi:type="boolean">false</item>
</item>
</item>
Also, add this below code for clickable grid by field :
<item name="childDefaults" xsi:type="array">
<item name="fieldAction" xsi:type="array">
<item name="provider" xsi:type="string">vendor_module_test_listing.vendor_module_test_listing.vendor_module_test_columns_editor</item>
<item name="target" xsi:type="string">startEdit</item>
<item name="params" xsi:type="array">
<item name="0" xsi:type="string">${ $.$data.rowIndex }</item>
<item name="1" xsi:type="boolean">true</item>
</item>
</item>
</item>
Now, create controller file app\code\Vendor\Module\Controller\Adminhtml\Test\inlineEdit.php
:
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Vendor\Module\Controller\Adminhtml\Test;
use Magento\Backend\App\Action;
use Magento\Backend\App\Action\Context;
use Magento\Framework\Controller\Result\JsonFactory;
use Vendor\Module\Model\ResourceModel\Test\Collection;
/**
* Grid inline edit controller file
*
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
*/
class InlineEdit extends Action
{
/**
* @var JsonFactory
*/
protected $jsonFactory;
/**
* @var Collection
*/
protected $testCollection;
/**
* [__construct description]
* @param Context $context [description]
* @param Collection $testCollection [description]
* @param JsonFactory $jsonFactory [description]
*/
public function __construct(
Context $context,
Collection $testCollection,
JsonFactory $jsonFactory
) {
parent::__construct($context);
$this->jsonFactory = $jsonFactory;
$this->testCollection = $testCollection;
}
/**
* @return \Magento\Framework\Controller\ResultInterface
*/
public function execute()
{
/** @var \Magento\Framework\Controller\Result\Json $resultJson */
$resultJson = $this->jsonFactory->create();
$error = false;
$messages = [];
$postItems = $this->getRequest()->getParam('items', []);
if (!($this->getRequest()->getParam('isAjax') && count($postItems))) {
return $resultJson->setData([
'messages' => [__('Please correct the data sent.')],
'error' => true,
]);
}
try {
$this->testCollection
->setStoreId($this->getRequest()->getParam('store', 0))
->addFieldToFilter('entity_id', ['in' => array_keys($postItems)])
->walk('saveCollection', [$postItems]);
} catch (\Exception $e) {
$messages[] = __('There was an error saving the data: ') . $e->getMessage();
$error = true;
}
return $resultJson->setData([
'messages' => $messages,
'error' => $error,
]);
}
}
Now, update your column code as like below way :
<column name="title">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<!-- inlineEdit code -->
<item name="editor" xsi:type="array">
<item name="editorType" xsi:type="string">text</item>
<item name="validation" xsi:type="array">
<item name="required-entry" xsi:type="boolean">true</item>
<item name="validate-zero-or-greater" xsi:type="boolean">true</item>
</item>
</item>
<!-- End inlineEdit code -->
<item name="filter" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">Title</item>
<item name="sortOrder" xsi:type="number">30</item>
</item>
</argument>
</column>
<item name="editor" xsi:type="array"> .. </item>
is useful for make editable field.
Check this all requirements in your module.
Hope, it will helpful for you.