<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Editor — DataTables forums</title>
        <link>https://next.datatables.net/forums/</link>
        <pubDate>Wed, 22 Jul 2026 01:33:19 +0000</pubDate>
        <language>en</language>
            <description>Editor — DataTables forums</description>
    <language>en</language>
    <atom:link href="https://next.datatables.net/forums/categories/editor/feed.rss" rel="self" type="application/rss+xml"/>
    <item>
        <title>One-to-many nested editors</title>
        <link>https://next.datatables.net/forums/discussion/81797/one-to-many-nested-editors</link>
        <pubDate>Thu, 04 Jun 2026 07:16:40 +0000</pubDate>
        <category>Editor</category>
        <dc:creator>IT CMS</dc:creator>
        <guid isPermaLink="false">81797@/forums/discussions</guid>
        <description><![CDATA[<p>Hi everyone,</p>

<p>Maybe I missed something, but I can't find a way to do it.</p>

<p>Here are more details on what I'm trying to do:</p>

<p>I have two tables:<br />
- Table "items"<br />
    - item_id<br />
    - item_name<br />
    - ...<br />
- Table "subitems":<br />
    - subitem_id<br />
    - item_id<br />
    - subitem_name<br />
    ...</p>

<p>I want to be able to perform CRUD operations on my subitems directly from the "items" editor.</p>

<p>My first idea was to use a nested editor like this: <a rel="nofollow" href="https://editor.datatables.net/examples/datatables/nested">https://editor.datatables.net/examples/datatables/nested</a> (or multiple version).<br />
However, that isn't the solution because the nested editor lists all the "subitems", and the user needs to select them.<br />
I only want to be able to CRUD "subitems" linked to the current "item" through the "subitems.item_id".</p>

<p>Is there a way to do that with a nested editor?</p>

<p>If not, how could I do it?</p>

<p>Thanks, Renaud</p>
]]>
        </description>
    </item>
    <item>
        <title>How to disable onEsc in child editor?</title>
        <link>https://next.datatables.net/forums/discussion/81792/how-to-disable-onesc-in-child-editor</link>
        <pubDate>Tue, 26 May 2026 13:24:57 +0000</pubDate>
        <category>Editor</category>
        <dc:creator>maxmedia</dc:creator>
        <guid isPermaLink="false">81792@/forums/discussions</guid>
        <description><![CDATA[<p>Using datatables field type in main editor, I open child editor. When user press Escape, both editors close.<br />
I need to disable Escape in child editor.</p>

<p>I tried opening child editor from datatables field buttons like this:<br />
<code>{ extend: 'create', editor: incRefundsEditor, formOptions: {onEsc: 'none', nest: true} }</code><br />
but nothing happened, Escape still closes both editors.</p>

<p>When I add <code>onEsc: 'none'</code> to parent editor this way it works as intended. But still opening child editor and pressing Escape closes both editors.</p>

<p>Any ideas?</p>
]]>
        </description>
    </item>
    <item>
        <title>Suming value of child table in parent table</title>
        <link>https://next.datatables.net/forums/discussion/81763/suming-value-of-child-table-in-parent-table</link>
        <pubDate>Sun, 03 May 2026 14:12:43 +0000</pubDate>
        <category>Editor</category>
        <dc:creator>carrarachristophe</dc:creator>
        <guid isPermaLink="false">81763@/forums/discussions</guid>
        <description><![CDATA[<p>Hello,<br />
I refer to the <a rel="nofollow" href="https://editor.datatables.net/examples/advanced/parentChild.html" title="parent child editor">parent child editor</a>.<br />
Is there a way to, instead of counting the number of users</p>

<pre><code>        {
            data: 'users',
            render: (data) =&gt; data.length
        }
</code></pre>

<p>We make the sum of a users' field, for example their age?</p>

<p>I found <a rel="nofollow" href="https://datatables.net/forums/discussion/63212" title="this post">this post</a> but I am not sure it is pointing me in the right direction.</p>

<p>Thanks and regards</p>
]]>
        </description>
    </item>
    <item>
        <title>Editor Ajax URL Replacement not working for uploads</title>
        <link>https://next.datatables.net/forums/discussion/81522/editor-ajax-url-replacement-not-working-for-uploads</link>
        <pubDate>Mon, 17 Nov 2025 15:25:26 +0000</pubDate>
        <category>Editor</category>
        <dc:creator>rozro</dc:creator>
        <guid isPermaLink="false">81522@/forums/discussions</guid>
        <description><![CDATA[<p>Hi, i just noticed that the {id} URL Parameter in Editor is not working for "upload" object.</p>

<p>See example here:<br />
<a rel="nofollow" href="https://live.datatables.net/holeqaca/4/edit">https://live.datatables.net/holeqaca/4/edit</a></p>

<p>The POST is executed to url: <a rel="nofollow" href="https://live.datatables.net/upload/%7Bid%7D">https://live.datatables.net/upload/%7Bid%7D</a> and the {id} is not replaced.</p>

<p>I think this is a bug.<br />
Is it possible to fix it?</p>
]]>
        </description>
    </item>
    <item>
        <title>ScrollX causes error when deleting all rows of last page</title>
        <link>https://next.datatables.net/forums/discussion/81741/scrollx-causes-error-when-deleting-all-rows-of-last-page</link>
        <pubDate>Mon, 13 Apr 2026 15:49:53 +0000</pubDate>
        <category>Editor</category>
        <dc:creator>Edus001</dc:creator>
        <guid isPermaLink="false">81741@/forums/discussions</guid>
        <description><![CDATA[<p><strong>Link to test case</strong>: <a rel="nofollow" href="https://live.datatables.net/hiniqeni/1/edit?js,console,output">https://live.datatables.net/hiniqeni/1/edit?js,console,output</a><br />
<strong>Error messages shown</strong>: settings.aoData[idx] is undefined<br />
<strong>Description of problem</strong>: When scrollX is set to true in the table options, deleting all rows <strong>of the last page</strong> causes the error in question. With scrollX set to false, the problem doesn't occur.</p>

<p>I came across this error in my app, wanted to see if a minimal example in live.datatables.net would have the same result. In both cases there is an error in the _fnScrollDraw function when scrollX is set to true. Any help is appreciated.</p>
]]>
        </description>
    </item>
    <item>
        <title>missing server script from example</title>
        <link>https://next.datatables.net/forums/discussion/81754/missing-server-script-from-example</link>
        <pubDate>Mon, 20 Apr 2026 12:51:51 +0000</pubDate>
        <category>Editor</category>
        <dc:creator>nlooije</dc:creator>
        <guid isPermaLink="false">81754@/forums/discussions</guid>
        <description><![CDATA[<p>I am trying to debug a problem with a nested editor not selecting the values in the datatable like in the <a rel="nofollow" href="https://editor.datatables.net/examples/datatables/nestedList.html" title="Nested editing - multiple selection">Nested editing - multiple selection</a> example.<br />
I noticed the server script is missing, could you correct this?</p>
]]>
        </description>
    </item>
    <item>
        <title>user added select values</title>
        <link>https://next.datatables.net/forums/discussion/81742/user-added-select-values</link>
        <pubDate>Mon, 13 Apr 2026 19:54:52 +0000</pubDate>
        <category>Editor</category>
        <dc:creator>louking</dc:creator>
        <guid isPermaLink="false">81742@/forums/discussions</guid>
        <description><![CDATA[<p><strong>Description of problem</strong>:</p>

<p>I intend to have an editor field where the user can add email addresses. These will not be stored in a separate table from which the options can be retrieved. These will be stored the table I'm editing which will store these as a@example.com;b@example.com. I initially tried doing this with select2 using its tags feature, but the data which is already in the table isn't shown when I bring up the editor modal. (The table already has single email addresses as text fields, but I want to add the feature allowing the user to add or create multiple addresses)</p>

<p>I want to create a link to a test case, but first I want to verify that select2 is an ok way to do this. Most of the selects in my application are select2.</p>

<p>I looked briefly at the tags data type, but I don't think this works for my use case.</p>

<p>Assuming select2 is fine, where is the best place to find a live version I can clone to show my problem?</p>
]]>
        </description>
    </item>
    <item>
        <title>Using -&gt;set(false)-&gt;get(false) for field validation on non-database fields</title>
        <link>https://next.datatables.net/forums/discussion/81731/using-set-false-get-false-for-field-validation-on-non-database-fields</link>
        <pubDate>Tue, 07 Apr 2026 13:12:06 +0000</pubDate>
        <category>Editor</category>
        <dc:creator>Loren Maxwell</dc:creator>
        <guid isPermaLink="false">81731@/forums/discussions</guid>
        <description><![CDATA[<p>Just a quick note for anyone that might find it helpful (plus a small suggestion for <a href="https://next.datatables.net/forums/profile/allan" rel="nofollow">@allan</a> at the end!):</p>

<p>Out of the box, Editor has very useful server-side field validation:<br />
<a rel="nofollow" href="https://editor.datatables.net/manual/php/validation">https://editor.datatables.net/manual/php/validation</a></p>

<p>(Lately I've especially taken advantage of the relatively new <code>dependsOn()</code> method!)</p>

<p>But occasionally data is submitted from the client-facing fields that don't match the fields in my table.</p>

<p>These non-database fields are used to do other things on the backend, but my point here is that I've previously done validation on those non-database fields in a global validator, which doesn't allow me to use the built-in field validation tools from Editor and also returns a global error instead of a field-specific one, so the UI isn't as helpful.</p>

<p><strong>MY OLD WAY</strong></p>

<pre><code>// Requires: id, player_code, and school_code (all database fields)
// And either school_code or school_name_manual (not database fields) for other processing

Editor::inst( $db, 'players_seasons' )
    -&gt;fields(
         
        Field::inst( 'id' ),
        Field::inst( 'player_code' )
            -&gt;validator( 'Validate::notEmpty' ),
        Field::inst( 'season_code' )
            -&gt;validator( 'Validate::notEmpty' )
    )

    // Non-database fields checked in a global validator
    -&gt;validator( function ( $editor, $action, $data ) {
        if ( $action === Editor::ACTION_CREATE ) {   
            foreach ( $data['data'] as $pkey =&gt; $values ) {
                if (
                    empty($values['school_code'])
                    &amp;&amp; empty($values['school_name_manual'])
                ) {
                    return "School cannot be blank";
                }
                return true;
            }
        }
        return true;
    });
</code></pre>

<p>However I've recently realized that by using both <code>set(false)</code> and <code>get(false)</code>, the server-side Editor will accept those non-database fields without fussing they don't match the fields in the table and I can use field validation:</p>

<p><strong>MY NEW WAY</strong></p>

<pre><code>// Requires: id, player_code, and school_code (all database fields)
// And either school_code or school_name_manual (not database fields) for other processing

Editor::inst( $db, 'players_seasons' )
    -&gt;fields(
        Field::inst( 'id' ),
        Field::inst( 'player_code' )
            -&gt;validator( 'Validate::notEmpty' ),
        Field::inst( 'season_code' )
            -&gt;validator( 'Validate::notEmpty' ),
        
        // Non-database fields checked in a field validator
        // with -&gt;set(false)-&gt;get(false)
        
        Field::inst( 'school_name_manual' )-&gt;set(false)-&gt;get(false),
        
        Field::inst( 'school_code' )-&gt;set(false)-&gt;get(false),
            -&gt;validator( Validate::notEmpty( ValidateOptions::inst()
                -&gt;message( 'School cannot be blank' )
                -&gt;dependsOn(function ($val, $row, $host) {
                    return empty($row['school_name_manual']);
                })
            ))
    );
</code></pre>

<p>This does the same thing except it's cleaner coding and the error for a missing <code>school_code</code> and <code>school_name_manual</code> shows on the client side under the specific field the client sees.</p>

<hr />

<p>Suggestion for <a href="https://next.datatables.net/forums/profile/allan" rel="nofollow">@allan</a> would be to include an <code>ignore()</code> method (or <code>submit(false)</code> or something similar) that would do the same as the <code>-&gt;set(false)-&gt;get(false)</code>, such as:</p>

<p><strong>SUGGESTION</strong></p>

<pre><code>// Requires: id, player_code, and school_code (all database fields)
// And either school_code or school_name_manual (not database fields) for other processing

Editor::inst( $db, 'players_seasons' )
    -&gt;fields(
        Field::inst( 'id' ),
        Field::inst( 'player_code' )
            -&gt;validator( 'Validate::notEmpty' ),
        Field::inst( 'season_code' )
            -&gt;validator( 'Validate::notEmpty' ),
        
        // Non-database fields
        // with -&gt;ignore() (or submit(false) or something similar)
        
        Field::inst( 'school_name_manual' )-&gt;ignore(),
        
        Field::inst( 'school_code' )-&gt;ignore(),
            -&gt;validator( Validate::notEmpty( ValidateOptions::inst()
                -&gt;message( 'School cannot be blank' )
                -&gt;dependsOn(function ($val, $row, $host) {
                    return empty($row['school_name_manual']);
                })
            ))
    );
</code></pre>
]]>
        </description>
    </item>
    <item>
        <title>What is the media query / css I need to change to make the small device style the same for large dev</title>
        <link>https://next.datatables.net/forums/discussion/81722/what-is-the-media-query-css-i-need-to-change-to-make-the-small-device-style-the-same-for-large-dev</link>
        <pubDate>Sun, 29 Mar 2026 18:32:01 +0000</pubDate>
        <category>Editor</category>
        <dc:creator>rmeetin</dc:creator>
        <guid isPermaLink="false">81722@/forums/discussions</guid>
        <description><![CDATA[<p><img src="https://datatables.net/forums/uploads/editor/rb/hjw9arepiejf.png" alt="" title="" /></p>

<p>In the Desktop view Limit Results is left-aligned and Search is right-aligned. On small devices maybe under 768px, not sure, they are stacked and center-aligned.</p>

<p>1) What CSS do I need to add  (to my custom css) to make the small device view the only view?<br />
2) How then do I make both Limit Results and Search left-aligned in the view</p>

<p>This is BS4, but would like to be able to do this with BS5 too.</p>

<p>Much thanks</p>
]]>
        </description>
    </item>
    <item>
        <title>Editor File upload</title>
        <link>https://next.datatables.net/forums/discussion/81684/editor-file-upload</link>
        <pubDate>Wed, 18 Feb 2026 13:37:12 +0000</pubDate>
        <category>Editor</category>
        <dc:creator>klymov.inekon</dc:creator>
        <guid isPermaLink="false">81684@/forums/discussions</guid>
        <description><![CDATA[<p>Hi, I have a question about file uploading.</p>

<p>I tried to download the .exe file (such requirements). During a example upload, it caused the page to refresh. I got around this by adding it to the ajax field.</p>

<pre><code>{
    name: 'File',
    data: 'File',
    label: 'File',
...
    type: 'upload',
    attr: {
        accept: ".exe,.msi",
    },

    ajax: function (files, done) {
        if (files.length == 0) return;
        done(files)
    },

    display: function (file) {
        return `&lt;span&gt; ${file.name} &lt;/span&gt;`;
    },

},
</code></pre>

<p>It worked, and when I submit, I see in the data that the field has a value with the type FILE.</p>

<pre><code><br />create: {
    type: 'POST',
    url: 'route',
    data: function (d) {
        debugger
        var file = d.data[0].ClientVersion.File; // file exist
       

        return d;
    },

},
</code></pre>

<p>But then I've an errors</p>

<pre><code>jquery.js:10073  Uncaught TypeError: Illegal invocation
jquery.js:10073  Uncaught (in promise) TypeError: Failed to execute 'arrayBuffer' on 'Blob': Illegal invocation
</code></pre>

<p>I've tried to set  contentType but it not helped.</p>

<pre><code>    contentType: 'application/x-www-form-urlencoded',
</code></pre>

<p>What should I do to send it to .net editor endpoint?</p>

<p>I don't need this file saved on server some way. I need to store it to database via MemoryStream. I've set for now in endpoint</p>

<pre><code>.SetFormatter((val,data)=&gt;{
    var file = val as IFormFile;
    if(file is null) return null;
    using (var memoryStream = new MemoryStream())
    {
        file.CopyTo(memoryStream);
        var fileContent = memoryStream.ToArray();
        return fileContent;
    }
}),
</code></pre>

<p>Maybe some solution to do this in js before sending file, rewrite field into byte array and send like standard value?</p>
]]>
        </description>
    </item>
    <item>
        <title>Editor mode vs action terminology</title>
        <link>https://next.datatables.net/forums/discussion/81618/editor-mode-vs-action-terminology</link>
        <pubDate>Wed, 21 Jan 2026 14:15:28 +0000</pubDate>
        <category>Editor</category>
        <dc:creator>Loren Maxwell</dc:creator>
        <guid isPermaLink="false">81618@/forums/discussions</guid>
        <description><![CDATA[<p>This is admittedly trivial, but I've been meaning to mention it and I'm virtually sitting in a boring staff meeting so I thought this might be a good time <img src="https://next.datatables.net/forums/resources/emoji/smile.png" title=":smile:" alt=":smile:" height="20" /></p>

<p>The API has <a rel="nofollow" href="//editor.datatables.net/reference/api/mode()"><code title="Editor API method">mode()</code></a>, which is either <code title="String">create</code>, <code title="String">edit</code>, or <code title="String">remove</code>.</p>

<p>But for events, such as <a rel="nofollow" href="//editor.datatables.net/reference/event/open"><code title="Editor event">open</code></a>, the parameters are <code>function( e, mode, action )</code>, where the <code>mode</code> is <code title="String">main</code>, <code title="String">inline</code>, or <code title="String">bubble</code>.</p>

<p>The <code>action</code> parameter is where the <code title="String">create</code>, <code title="String">edit</code>, or <code title="String">remove</code> are found.</p>

<p>There have been a couple of times I've programed an <code>event</code> where I've done:</p>

<pre><code>editor.on('open', function (e, mode, action) {
    // Should be "action == 'edit'" but the
    // api method "mode()" has thrown me off
    if (mode == 'edit') {
        ...
    }
});
</code></pre>

<p>The inconsistency always makes me wonder if it wouldn't be better to use the terminology from the <code>event</code> fields and have an <a rel="nofollow" href="//editor.datatables.net/reference/api/action()"><code title="Editor API method">action()</code></a> method that will eventually replace the <a rel="nofollow" href="//editor.datatables.net/reference/api/mode()"><code title="Editor API method">mode()</code></a> method?</p>
]]>
        </description>
    </item>
    <item>
        <title>one-to-many join</title>
        <link>https://next.datatables.net/forums/discussion/81692/one-to-many-join</link>
        <pubDate>Fri, 20 Feb 2026 08:48:43 +0000</pubDate>
        <category>Editor</category>
        <dc:creator>nlooije</dc:creator>
        <guid isPermaLink="false">81692@/forums/discussions</guid>
        <description><![CDATA[<p>Hi,</p>

<p>I am trying to get a one-to-many join with the PHP libs working but I am having issues setting it up.<br />
For some reason the <code>link</code> method does not set up the joins as i expect</p>

<p>What i am trying to do:<br />
- I have table <code>MATERIALS</code> containing all my materials with fields <code>ID</code>, <code>DESCRIPTION</code>, etc<br />
- a table <code>CHECKLIST</code> containing regulated materials with fields <code>ID</code>, <code>MATERIAL_ID</code> (links to table <code>MATERIALS</code>), etc<br />
- and a table <code>CHECKLIST_ALTERNATIVES</code> containing alternatives materials for a regulated material with fields <code>CHECK_ID</code> (links to table <code>CHECKLIST) and</code>MATERIAL_ID<code>(links to table</code>MATERIALS`)</p>

<p>The query I am trying to recreate (I think) is:</p>

<pre><code>SELECT DISTINCT MATERIALS.ID as 'dteditor_pk',
    ALTERNATIVES.DESCRIPTION
FROM MATERIALS
JOIN CHECKLIST
    ON CHECKLIST.MATERIAL_ID = MATERIAL.ID
JOIN CHECKLIST_ALTERNATIVES
    ON CHECKLIST_ALTERNATIVES.CHECK_ID = CHECKLIST.ID
JOIN MATERIALS ALTERNATIVES
    ON ALTERNATIVES.ID = CHECKLIST_ALTERNATIVES.MATERIAL_ID
</code></pre>

<p>because i am referencing the <code>MATERIALS</code> table twice i need to alias the second instance.<br />
This seems to return the data correctly if i run the query directly on the database:</p>

<p>dteditor_pk DESCRIPTION<br />
6443    test material 1<br />
6447    test material 2<br />
etc</p>

<p>but this requires three joins which <code>link</code> method does not support.<br />
So i create a VIEW combining <code>CHECKLIST_ALTERNATIVES</code> and <code>MATERIALS</code> on field <code>MATERIAL_ID</code>:</p>

<pre><code>SELECT DISTINCT VDSTAM.ID as 'dteditor_pk',
    ALTERNATIVES.DESCRIPTION
FROM MATERIALS
JOIN CHECKLIST
    ON CHECKLIST.MATERIAL_ID = MATERIALS.ID
JOIN CHECKLIST_ALTERNATIVES_VIEW ALTERNATIVES
    ON ALTERNATIVES.CHECK_ID = CHECKLIST.ID
</code></pre>

<p>This still returns the correct data when checked running the query.</p>

<p>Implementing this with the PHP libs:</p>

<pre><code>$editor = Editor::inst($db, 'MATERIALS', "ID");

$fields = array();
$fields[] = Field::inst('MATERIALS.ID');
$fields[] = Field::inst('MATERIALS.DESCRIPTION');
$fields[] = Field::inst('CHECKLIST.MATERIAL_ID');

$editor-&gt;fields($fields);
$editor-&gt;leftJoin('CHECKLIST', 'CHECKLIST.MATERIAL_ID', '=', 'MATERIALS.ID');

$m = Mjoin::inst('MATERIALS');
$m-&gt;link('MATERIALS.ID', 'CHECKLIST.MATERIAL_ID');
$m-&gt;link('CHECKLIST_ALTERNATIVES_VIEW.CHECK_ID', 'CHECKLIST.ID');

$fields = array();
$fields[] = Field::inst('DESCRIPTION'); // should be from CHECKLIST_ALTERNATIVES_VIEW

$m-&gt;fields($fields);

$editor-&gt;join($m);
</code></pre>

<p>The generated SQL query is:</p>

<pre><code>SELECT DISTINCT [MATERIAL].[ID] as 'dteditor_pkey',
    [MATERIALS].[OMSCHRIJVING1] as 'OMSCHRIJVING1' 
FROM  [MATERIALS]
JOIN [CHECKLIST] 
    ON [MATERIALS].[ID] = [CHECKLIST].[MATERIAL_ID]   
JOIN [MATERIALS] 
    ON [MATERIALS].[CHECK_ID] = [CHECKLIST].[ID]
</code></pre>

<p>This generates an SQL error because it is trying to set up a self-referencing table <code>MATERIALS</code> without an alias.<br />
But this is not the query i am looking for anyway compared to the query above.</p>

<p>It seems the second <code>link</code> is not used (correctly):</p>

<pre><code>$m-&gt;link('CHECKLIST_ALTERNATIVES_VIEW.CHECK_ID', 'CHECKLIST.ID');
</code></pre>

<p>should not lead to:</p>

<pre><code>JOIN [MATERIALS] 
    ON [MATERIALS].[CHECK_ID] = [CHECKLIST].[ID]
</code></pre>

<p>Can you provide any insight into how to deal with this issue?<br />
I hope everything is clear, if not i can add more info</p>
]]>
        </description>
    </item>
    <item>
        <title>Using the where clause in Editor to limit records</title>
        <link>https://next.datatables.net/forums/discussion/81687/using-the-where-clause-in-editor-to-limit-records</link>
        <pubDate>Wed, 18 Feb 2026 23:19:47 +0000</pubDate>
        <category>Editor</category>
        <dc:creator>kkuti</dc:creator>
        <guid isPermaLink="false">81687@/forums/discussions</guid>
        <description><![CDATA[<p>I have tried but failed to get the where clause to Limit the number of records selected. I have used other multiple where conditions as they have worked but perhaps it is a syntax issue to get the Limit clause to work. Any suggestions please</p>
]]>
        </description>
    </item>
    <item>
        <title>Can I set a filter from one page to another DataTable?</title>
        <link>https://next.datatables.net/forums/discussion/81645/can-i-set-a-filter-from-one-page-to-another-datatable</link>
        <pubDate>Tue, 03 Feb 2026 13:22:28 +0000</pubDate>
        <category>Editor</category>
        <dc:creator>arie0512</dc:creator>
        <guid isPermaLink="false">81645@/forums/discussions</guid>
        <description><![CDATA[<p>Hello,</p>

<p>I have an overview page where they can see how many sub categories one person had, for example a person Joe Doe have an overview page which has said it had 8 requests.</p>

<p>I want to make from this number 8 a link to another existing DataTable (query.php) and open this page which this 8 records.</p>

<p>The query.php looks like this:</p>

<pre><code>&lt;div class="pb-5"&gt;
    &lt;table id="table-request" class="table-responsive stripe hover row-border compact nowrap"&gt;
      &lt;thead&gt;
        &lt;tr&gt;
          &lt;th&gt;Clientnumber&lt;/th&gt;
          &lt;th&gt;Name&lt;/th&gt;
          &lt;th&gt;Product&lt;/th&gt;          
        &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;          
      &lt;/tbody&gt;  
    &lt;/table&gt; 
  &lt;/div&gt;

$(document).ready(function() {

new DataTable('#table-request', {
ajax: {
    url: '/crm/ajax/request-data.php',
    type: 'POST'
},
columns: [        
    { data: 'request.clientnumber' },        
    { data: 'request.name' },
    { data: 'request.product' }
],
columnDefs: [
  { targets: [0], className: 'dt-body-left'},
  { targets: [0], render: DataTable.render.number( '.', ',', 0 ) }
],      
order: [[0, 'asc']],
pagingType: 'full_numbers',
pageLength: 25, 
language: {
  url: 'https://cdn.datatables.net/plug-ins/1.11.5/i18n/nl-NL.json'
},          
search: {
  smart: false
} 
});
</code></pre>

<p>If the client has clientnumber 3, how can I make a link from the overview page which opens the query.php and filter out only clientnumber 3? So only 8 records are visible?</p>

<p>Kind regards,</p>

<p>Arie</p>
]]>
        </description>
    </item>
    <item>
        <title>Working TypeScript example with current Editor + DataTable?</title>
        <link>https://next.datatables.net/forums/discussion/81047/working-typescript-example-with-current-editor-datatable</link>
        <pubDate>Mon, 16 Jun 2025 15:15:41 +0000</pubDate>
        <category>Editor</category>
        <dc:creator>kylecordes</dc:creator>
        <guid isPermaLink="false">81047@/forums/discussions</guid>
        <description><![CDATA[<p>Is anyone aware of a working TypeScript example with the current Editor and current DataTable?</p>

<p>I'm installing from npm, which is of course the normal natural way to do this in a TypeScript application.</p>

<p><a rel="nofollow" href="https://editor.datatables.net/manual/installing/">https://editor.datatables.net/manual/installing/</a></p>

<p>I'm running, as of a few days ago, the most current version of each relevant package:</p>

<pre><code>    "@datatables.net/editor-dt": "^2.4.2",
    "datatables.net-dt": "^2.3.2",
    "datatables.net-react": "^1.0.1",
</code></pre>

<p>And I'm starting with just the tiniest bit of code, roughly this:</p>

<pre><code>import DataTable from 'datatables.net-react';
import DataTablesCore from 'datatables.net-dt';
import Editor from '@datatables.net/editor-dt';

DataTable.use(DataTablesCore);
</code></pre>

<p>The last line results in a bevy of TypeScript errors.  The errors go away if commenting out the line that imports the editor. This is because the editor is bringing in a different set of TypeScript definitions, causing that last line, which doesn't even mention editor, to become broken.</p>

<p>An actual working example with TypeScript, Editor, and Data Table would resolve the question of whether this is possible and what combinations of versions, etc., are needed to make it work.</p>
]]>
        </description>
    </item>
    <item>
        <title>Proposed best practice for hiding custom template on page load</title>
        <link>https://next.datatables.net/forums/discussion/81660/proposed-best-practice-for-hiding-custom-template-on-page-load</link>
        <pubDate>Sun, 08 Feb 2026 16:39:36 +0000</pubDate>
        <category>Editor</category>
        <dc:creator>Loren Maxwell</dc:creator>
        <guid isPermaLink="false">81660@/forums/discussions</guid>
        <description><![CDATA[<p>I'll post this on this page as well: <a rel="nofollow" href="https://editor.datatables.net/reference/option/template">https://editor.datatables.net/reference/option/template</a></p>

<p><a href="https://next.datatables.net/forums/profile/Stacey1134" rel="nofollow">@Stacey1134</a> has a solution in the comments about how to avoid that brief flash of custom templates for Editors on page load.</p>

<p>An example of that flash can be found here:<br />
<a rel="nofollow" href="https://editor.datatables.net/examples/simple/template-attribute.html">https://editor.datatables.net/examples/simple/template-attribute.html</a><br />
or <a rel="nofollow" href="https://editor.datatables.net/examples/simple/template.html">https://editor.datatables.net/examples/simple/template.html</a></p>

<p>My previous solution was similar to his (hiding the template in the html and then using the API to show it), but since then I've started to just put all my templates in a special section of the page that is hidden:</p>

<pre><code>&lt;!-- All custom templates go inside this div --&gt;
&lt;div hidden&gt;
   &lt;div id="customForm"&gt;
      yada yada yada
   &lt;/div&gt;
&lt;/div&gt;
</code></pre>

<p>Now all my custom templates are hidden when the page loads and I can get rid of all <a rel="nofollow" href="//editor.datatables.net/reference/event/initEditor"><code title="Editor event">initEditor</code></a> code.</p>

<p>I would propose this as the best practice <img src="https://next.datatables.net/forums/resources/emoji/smile.png" title=":smile:" alt=":smile:" height="20" /></p>
]]>
        </description>
    </item>
    <item>
        <title>I found (and fixed) two bugs in Editor-Net</title>
        <link>https://next.datatables.net/forums/discussion/81649/i-found-and-fixed-two-bugs-in-editor-net</link>
        <pubDate>Wed, 04 Feb 2026 16:54:39 +0000</pubDate>
        <category>Editor</category>
        <dc:creator>parcival</dc:creator>
        <guid isPermaLink="false">81649@/forums/discussions</guid>
        <description><![CDATA[<p>There is a bug in the latest version of Editor-Net with the Options class when adding manual entries.</p>

<p>The problem was with an attempted database call when it was not needed, and the value and labels being swapped for manual entries.</p>

<p>I've posted the details in an issue (<a rel="nofollow" href="https://github.com/DataTables/Editor-NET/issues/29)">https://github.com/DataTables/Editor-NET/issues/29)</a> and submitted a pull request with the fix (<a rel="nofollow" href="https://github.com/DataTables/Editor-NET/pull/30)">https://github.com/DataTables/Editor-NET/pull/30)</a></p>
]]>
        </description>
    </item>
    <item>
        <title>Updated tags wish list</title>
        <link>https://next.datatables.net/forums/discussion/81390/updated-tags-wish-list</link>
        <pubDate>Tue, 23 Sep 2025 21:16:13 +0000</pubDate>
        <category>Editor</category>
        <dc:creator>Loren Maxwell</dc:creator>
        <guid isPermaLink="false">81390@/forums/discussions</guid>
        <description><![CDATA[<p>Just carrying over from this thread: <a rel="nofollow" href="https://datatables.net/forums/discussion/80475/autocomplete-tags-and-ajax/p1">https://datatables.net/forums/discussion/80475/autocomplete-tags-and-ajax/p1</a></p>

<p>Most of those requests were addressed with the Editor 2.5 release (<strong>thanks, <a href="https://next.datatables.net/forums/profile/allan" rel="nofollow">@allan</a>!</strong>), but I wanted to capture the remainder here, not necessarily with the assumption that they'll be added, but just to clean up the conversation.</p>

<p><strong>1) Include the input with the wrap around navigation</strong><br />
The up/down arrows would include the input with the wrap around:<br />
* Arrow down from the input moves to the first record<br />
* Arrow up from the first record moves to the input<br />
* Arrow up from the input moves to the last record<br />
* Arrow down from the last record moves to the input</p>

<p><strong>2) Fully expose the <a rel="nofollow" href="//datatables.net/reference/api/ajax"><code title="DataTables API method">ajax</code></a> method</strong><br />
Mentioned as a possible future feature to mirror how the <a rel="nofollow" href="//datatables.net/reference/option/ajax"><code title="DataTables initialisation option">ajax</code></a> object is used elsewhere:</p>

<pre><code>new DataTable.Editor({
    ajax: '/api/data',
    fields: [{
        label: 'Counties:',
        name: 'county',
        type: 'tags',
        ajax: {
            url: '/api/counties',
            data: {
                state: 'Texas',
                yet_another_param: function () {
                    let foo = 42
                    return foo
                }
            }
    }],
    // ...
})
</code></pre>

<p><strong>3) Ability to use <a rel="nofollow" href="//datatables.net/reference/option/rowGroup"><code title="DataTables initialisation option">rowGroup</code></a></strong><br />
Mentioned the possibility of an <code title="HTML tag">optgroup</code>.</p>

<p><strong>4) Bootstrap floating labels</strong><br />
Not sure how this would look for <a rel="nofollow" href="//editor.datatables.net/reference/field/tags"><code title="Editor field type">tags</code></a> but perhaps above the <code>dte-tag</code>?</p>

<p><strong>5) Dropdown occasionally "disconnected" from field</strong><br />
Setting <a rel="nofollow" href="//datatables.net/reference/option/fields.className"><code title="DataTables initialisation option">fields.className</code></a> to 'block' or entering mobile mode seems to cause the dropdown to be placed lower than what it should be.</p>

<p>To duplicate, view the following link in mobile mode and create a new entry to see the dropdown for the country tags is too low for the control (see picture): <a rel="nofollow" href="https://editor.datatables.net/examples/dropdown/tags-rendering.html">https://editor.datatables.net/examples/dropdown/tags-rendering.html</a></p>

<p><img src="https://datatables.net/forums/uploads/editor/9b/tpcdpn64nxye.png" alt="" title="" /></p>

<p>If there was an editor field below the country tag on the form then it would show between the country tag and the dropdown.</p>

<p><strong>6) Option to have an initial AJAX load</strong><br />
I had requested this and the initial answer was to use <a rel="nofollow" href="//datatables.net/reference/api/field().update()"><code title="DataTables API method">field().update()</code></a>, but I could never get it work.</p>

<p>However I happen to notice in the <a rel="nofollow" href="https://editor.datatables.net/download/2.5.0" title="https://editor.datatables.net/download/2.5.0">Editor 2.5.0 release notes</a> that</p>

<blockquote>
  <p><a rel="nofollow" href="//editor.datatables.net/reference/field/tags"><code title="Editor field type">tags</code></a> and <a rel="nofollow" href="//editor.datatables.net/reference/field/autocomplete"><code title="Editor field type">autocomplete</code></a> didn't respect the update option of <a rel="nofollow" href="//editor.datatables.net/reference/api/field().update()"><code title="Editor API method">field().update()</code></a>.</p>
</blockquote>

<p>Perhaps that was the issue I was having so I'll try again one day this week.</p>

<p>If so, shouldn't the <a rel="nofollow" href="//editor.datatables.net/reference/api/field().update()"><code title="Editor API method">field().update()</code></a> documentation include <a rel="nofollow" href="//editor.datatables.net/reference/field/tags"><code title="Editor field type">tags</code></a> and perhaps <a rel="nofollow" href="//editor.datatables.net/reference/field/autocomplete"><code title="Editor field type">autocomplete</code></a>?</p>

<hr />

<p>Again, I'm <strong>very, very grateful</strong> to <a href="https://next.datatables.net/forums/profile/allan" rel="nofollow">@allan</a> for all the improvements that were incorporated from that initial thread!</p>
]]>
        </description>
    </item>
    <item>
        <title>Field error message from global editor validator</title>
        <link>https://next.datatables.net/forums/discussion/81624/field-error-message-from-global-editor-validator</link>
        <pubDate>Sun, 25 Jan 2026 19:35:11 +0000</pubDate>
        <category>Editor</category>
        <dc:creator>Loren Maxwell</dc:creator>
        <guid isPermaLink="false">81624@/forums/discussions</guid>
        <description><![CDATA[<p>For a global validator, can I return the error message to a specific field?</p>

<pre><code>    -&gt;validator(function ($editor, $action, $data) {
    
        foreach ($data['data'] as $id =&gt; $d) {
                return "I don't like"; // &lt;- Can I return for a specific field?
            }
        }
    
        return true;
    })
</code></pre>
]]>
        </description>
    </item>
    <item>
        <title>how is the `custom` argument used in i18n()?</title>
        <link>https://next.datatables.net/forums/discussion/81619/how-is-the-custom-argument-used-in-i18n</link>
        <pubDate>Wed, 21 Jan 2026 22:37:41 +0000</pubDate>
        <category>Editor</category>
        <dc:creator>nlooije</dc:creator>
        <guid isPermaLink="false">81619@/forums/discussions</guid>
        <description><![CDATA[<p>Hi, I am adding internationalization but I don't understand the function syntax of the <a rel="nofollow" href="https://editor.datatables.net/reference/api/i18n()" title="i18n()">i18n()</a> function as described in the reference manual.</p>

<pre><code>i18n( custom, token [, default] )
</code></pre>

<p>custom:</p>

<blockquote>
  <p>User defined string for this token. While it would be possible to check for this value outside the method, it is a common action to check for custom text values on objects (e.g. field configuration objects), so this is provided to simplify that logic. If not null or undefined, this value will be returned.</p>
</blockquote>

<p>token:</p>

<blockquote>
  <p>The JS object notation string for the value that is to be loaded. For example for i18n.create.button, create.button would be given here.</p>
</blockquote>

<p>The examples only use the <code>custom</code> argument:</p>

<pre><code>editor.i18n('edit.button');
</code></pre>

<p>This would (and does for me) return the string 'edit.button' which is not what is needed</p>

<p>Instead i have to set:</p>

<pre><code>editor.i18n(null, 'edit.button')
</code></pre>

<p>which does correctly return the string 'Update' as I would expect.</p>

<p>What is the usage of the <code>custom</code> argument?</p>
]]>
        </description>
    </item>
    <item>
        <title>KeyTable + Clipboard on cells with rendered data</title>
        <link>https://next.datatables.net/forums/discussion/81616/keytable-clipboard-on-cells-with-rendered-data</link>
        <pubDate>Tue, 20 Jan 2026 03:21:41 +0000</pubDate>
        <category>Editor</category>
        <dc:creator>hserveira</dc:creator>
        <guid isPermaLink="false">81616@/forums/discussions</guid>
        <description><![CDATA[<p><strong>Link to test case</strong>:  <a rel="nofollow" href="https://editor.datatables.net/examples/extensions/excel">https://editor.datatables.net/examples/extensions/excel</a><br />
<strong>Description of problem</strong>:  Using the clipboard to copy and paste a value from the 'Salary' column in the above example fails because of the formatting applied by the render function. Is there a workaround to this?</p>

<p><img src="https://datatables.net/forums/uploads/editor/aa/f0kraptyehf0.png" alt="" title="" /></p>
]]>
        </description>
    </item>
    <item>
        <title>Better number and date formatting, please</title>
        <link>https://next.datatables.net/forums/discussion/81608/better-number-and-date-formatting-please</link>
        <pubDate>Thu, 08 Jan 2026 09:55:24 +0000</pubDate>
        <category>Editor</category>
        <dc:creator>resqonline</dc:creator>
        <guid isPermaLink="false">81608@/forums/discussions</guid>
        <description><![CDATA[<p>I love working with editor and datatables, however the thing that keeps popping up again and again is number and date formatting! Although the rendering in the table works fine, I constantly get into trouble within the editor when comparing/calculating dates or numbers. It should be an easier setup to have European date formatting like d.m.Y or number format like 1.234,56 - the back and forth between displaying German values but wiring SQL format to the database is a constant struggle! There has to be a better solution to use display/wire formats both for tables and editors.</p>

<p>Has anyone created an add-on for this or found a good solution? moment.js is only getting me so far...</p>
]]>
        </description>
    </item>
    <item>
        <title>Check serverside leftjoins</title>
        <link>https://next.datatables.net/forums/discussion/81562/check-serverside-leftjoins</link>
        <pubDate>Tue, 09 Dec 2025 13:41:01 +0000</pubDate>
        <category>Editor</category>
        <dc:creator>klymov.inekon</dc:creator>
        <guid isPermaLink="false">81562@/forums/discussions</guid>
        <description><![CDATA[<p>Hi, I have a question about .net editor left joins. In my code I don't know how many and which left joins will be. And can be situations when I need to join same table few times. So I want to check editor already have left joined table. I get the list by editor.LeftJoin(). But I can't see any private field like name of joined table. Can I get this info in code?</p>
]]>
        </description>
    </item>
    <item>
        <title>Tags dropdown on inline mode not positioned correctly</title>
        <link>https://next.datatables.net/forums/discussion/81607/tags-dropdown-on-inline-mode-not-positioned-correctly</link>
        <pubDate>Wed, 07 Jan 2026 06:36:35 +0000</pubDate>
        <category>Editor</category>
        <dc:creator>hserveira</dc:creator>
        <guid isPermaLink="false">81607@/forums/discussions</guid>
        <description><![CDATA[<p><strong>Link to test case</strong>:  <a rel="nofollow" href="https://live.datatables.net/paricoge/1/edit">https://live.datatables.net/paricoge/1/edit</a><br />
<strong>Description of problem</strong>:  When using the tags field on inline mode, the dropdown doesn't account when a cell is on the end of the table/page, rendering it impossible to pick an option. Ideally, it should be positioned as a 'dropup'.</p>

<p>To replicate the issue, double click the 'position' cell on the test case page.</p>

<p><img src="https://datatables.net/forums/uploads/editor/j4/shaycq8dg64p.png" alt="" title="" /></p>
]]>
        </description>
    </item>
    <item>
        <title>Console warning for Editor with Bootstrap 5 and Foundation</title>
        <link>https://next.datatables.net/forums/discussion/81601/console-warning-for-editor-with-bootstrap-5-and-foundation</link>
        <pubDate>Wed, 31 Dec 2025 12:06:29 +0000</pubDate>
        <category>Editor</category>
        <dc:creator>Loren Maxwell</dc:creator>
        <guid isPermaLink="false">81601@/forums/discussions</guid>
        <description><![CDATA[<p>For this example: <a rel="nofollow" href="https://editor.datatables.net/examples/styling/bootstrap5.html">https://editor.datatables.net/examples/styling/bootstrap5.html</a></p>

<p>When a record is selected and the Editor modal is closed, the following warning comes up in the console:</p>

<blockquote>
  <p>Blocked aria-hidden on an element because its descendant retained focus. The focus must not be hidden from assistive technology users. Avoid using aria-hidden on a focused element or its ancestor. Consider using the inert attribute instead, which will also prevent focus. For more details, see the aria-hidden section of the WAI-ARIA specification at <a rel="nofollow" href="https://w3c.github.io/aria/#aria-hidden.">https://w3c.github.io/aria/#aria-hidden.</a><br />
  Element with focus: <code>&lt;button.btn btn-primary&gt;</code><br />
  Ancestor with aria-hidden: <code>&lt;div.modal fade DTED&gt;</code> <code>&lt;div class=​"modal fade DTED" style=​"display:​ block;​" aria-hidden=​"true"&gt;​…​&lt;/div&gt;​</code></p>
</blockquote>

<p>I'm not an expert on accessibility but in doing some research it seems the button on the modal (Element with focus: <code>&lt;button.btn btn-primary&gt;</code>) still has the focus when the modal closes, which generates the warning.</p>
]]>
        </description>
    </item>
    <item>
        <title>use license on 2 websites for temporary migration</title>
        <link>https://next.datatables.net/forums/discussion/81580/use-license-on-2-websites-for-temporary-migration</link>
        <pubDate>Fri, 19 Dec 2025 10:00:44 +0000</pubDate>
        <category>Editor</category>
        <dc:creator>lucianoluna</dc:creator>
        <guid isPermaLink="false">81580@/forums/discussions</guid>
        <description><![CDATA[<p>Hello, I need to use temporary the license of Editor on 2 websites because I need to do a migration to a new domain.<br />
I need a couple weeks of testing. Can I have problems with the license activation?</p>
]]>
        </description>
    </item>
    <item>
        <title>Row Length Menu</title>
        <link>https://next.datatables.net/forums/discussion/81578/row-length-menu</link>
        <pubDate>Wed, 17 Dec 2025 21:59:06 +0000</pubDate>
        <category>Editor</category>
        <dc:creator>niksa.blonder</dc:creator>
        <guid isPermaLink="false">81578@/forums/discussions</guid>
        <description><![CDATA[<p>Does Datatables Editor edition have option for changing the number of rows in an editable datatable? Specifically something like lengthMenu: [10, 25, 50, -1] does not seem to exist.</p>
]]>
        </description>
    </item>
    <item>
        <title>Why does the Parent child editing example show 'Edit entryEdit entry'  in the usersEditor form?</title>
        <link>https://next.datatables.net/forums/discussion/81571/why-does-the-parent-child-editing-example-show-edit-entryedit-entry-in-the-userseditor-form</link>
        <pubDate>Sun, 14 Dec 2025 04:01:05 +0000</pubDate>
        <category>Editor</category>
        <dc:creator>lowrymel</dc:creator>
        <guid isPermaLink="false">81571@/forums/discussions</guid>
        <description><![CDATA[<ol>
<li>Select the Parent Child Editing example on the website </li>
<li>Select 'Edinburgh'    </li>
<li>Press the Edit Button    </li>
<li>Select 'Ishmael Crosby'    </li>
<li>Press the Edit button   </li>
<li>UsersEditor form is displayed with a Title of 'Edit entryEdit entry'     </li>
</ol>
]]>
        </description>
    </item>
    <item>
        <title>Question about what happens to the Tags DataTable on destroy()</title>
        <link>https://next.datatables.net/forums/discussion/81573/question-about-what-happens-to-the-tags-datatable-on-destroy</link>
        <pubDate>Mon, 15 Dec 2025 17:29:29 +0000</pubDate>
        <category>Editor</category>
        <dc:creator>Loren Maxwell</dc:creator>
        <guid isPermaLink="false">81573@/forums/discussions</guid>
        <description><![CDATA[<p>I have a table where the child rows create their own editor when opened and the editor is destroyed when the child row is closed.</p>

<p>The editors for those child rows have <a rel="nofollow" href="//editor.datatables.net/reference/field/tags"><code title="Editor field type">tags</code></a>, which of course have their own instance of a DataTable included.</p>

<p>I've noticed that each time I open and close a child row (and thereby creating/destroying the child row editor) I have some residual DataTables coming from somewhere.</p>

<p>While troubleshooting, I noticed when I don't include the child row Editor, the residual DataTables don't appear.</p>

<p>I haven't been able to pinpoint where those DataTables are coming from in my own code (so far), so I'm wondering if the residual DataTables are the ones associated with the <a rel="nofollow" href="//editor.datatables.net/reference/field/tags"><code title="Editor field type">tags</code></a> and those aren't destroyed when the Editor itself is destroyed.</p>

<p>Does that sounds possible?  Or do I need to continue checking my own code?</p>
]]>
        </description>
    </item>
    <item>
        <title>How to create read-only UploadMany field?</title>
        <link>https://next.datatables.net/forums/discussion/81567/how-to-create-read-only-uploadmany-field</link>
        <pubDate>Wed, 10 Dec 2025 14:25:45 +0000</pubDate>
        <category>Editor</category>
        <dc:creator>maxmedia</dc:creator>
        <guid isPermaLink="false">81567@/forums/discussions</guid>
        <description><![CDATA[<p>In certain situations I am opening editor as read-only. For most fields <code>readonly</code> type is fine. I am also adding <code>attr:{ disabled:true }</code> for visual clue and disabling focus on field.<br />
How can I do this with UploadMany (or Upload) field type?<br />
Using API method <code>disable()</code> works, but upload and delete buttons are still visible and clickable, though click itself is discarded. This UX is confusing for users.<br />
I have tried setting <code>readonly</code> field using <code>setFormatter()</code> to the html code with links to uploaded files. But this html is shown as literal string inside readonly <code>&lt;input&gt;</code> element.<br />
Can I insert arbitrary HTML in place of field using API?<br />
Direct HTML DOM manipulation could possibly be the solution, but is there any native DT solution?</p>
]]>
        </description>
    </item>
   </channel>
</rss>
