<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.appian.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Issue in editable grid bulk selection</title><link>https://community.appian.com/discussions/f/user-interface/38997/issue-in-editable-grid-bulk-selection</link><description>Hi All, 
 I am having editable grid with selection and implemented pagination also for that grid. For selection given primary key for id in gridRowLayout. 
 
 but issue is if I selected all records in first page by click on header level checkbox and and</description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>RE: Issue in editable grid bulk selection</title><link>https://community.appian.com/thread/147609?ContentTypeID=1</link><pubDate>Mon, 28 Apr 2025 17:40:35 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:cb7aa3c6-67cc-4cc2-829b-775a25af9f25</guid><dc:creator>osanchea</dc:creator><description>&lt;p&gt;This is another possible solution:&lt;br /&gt;&lt;pre class="ui-code" data-mode="text"&gt;a!localVariables(
  local!items: {
    a!map(id: 1, summary: &amp;quot;Item 1&amp;quot;, qty: 1, unitPrice: 10, dept: &amp;quot;Sales&amp;quot;,   due: today() + 10),
    a!map(id: 2, summary: &amp;quot;Item 2&amp;quot;, qty: 2, unitPrice: 20, dept: &amp;quot;Finance&amp;quot;, due: today() + 20),
    a!map(id: 3, summary: &amp;quot;Item 3&amp;quot;, qty: 3, unitPrice: 30, dept: &amp;quot;Sales&amp;quot;,   due: today() + 30),
    a!map(id: 4, summary: &amp;quot;Item 4&amp;quot;, qty: 1, unitPrice: 10, dept: &amp;quot;Sales&amp;quot;,   due: today() + 10),
    a!map(id: 5, summary: &amp;quot;Item 5&amp;quot;, qty: 2, unitPrice: 20, dept: &amp;quot;Finance&amp;quot;, due: today() + 20),
    a!map(id: 6, summary: &amp;quot;Item 6&amp;quot;, qty: 3, unitPrice: 30, dept: &amp;quot;Sales&amp;quot;,   due: today() + 30),
    a!map(id: 7, summary: &amp;quot;Item 7&amp;quot;, qty: 1, unitPrice: 10, dept: &amp;quot;Sales&amp;quot;,   due: today() + 10),
    a!map(id: 8, summary: &amp;quot;Item 8&amp;quot;, qty: 2, unitPrice: 20, dept: &amp;quot;Finance&amp;quot;, due: today() + 20),
    a!map(id: 9, summary: &amp;quot;Item 9&amp;quot;, qty: 3, unitPrice: 30, dept: &amp;quot;Sales&amp;quot;,   due: today() + 30),
    a!map(id: 10, summary: &amp;quot;Item 10&amp;quot;, qty: 1, unitPrice: 10, dept: &amp;quot;Sales&amp;quot;,   due: today() + 10),
    a!map(id: 11, summary: &amp;quot;Item 11&amp;quot;, qty: 2, unitPrice: 20, dept: &amp;quot;Finance&amp;quot;, due: today() + 20),
    a!map(id: 12, summary: &amp;quot;Item 13&amp;quot;, qty: 3, unitPrice: 30, dept: &amp;quot;Sales&amp;quot;,   due: today() + 30)

  },
  local!pagingInfo:a!pagingInfo(startIndex: 1,batchSize: 5),
  local!data: todatasubset(
    arrayToPage: local!items,
    pagingConfiguration: local!pagingInfo
  ),
  local!selectedIndices: tointeger({}),
  a!formLayout(
    label: &amp;quot;&amp;quot;,
    contents: {
      a!gridLayout(
        headerCells: {
          a!gridLayoutHeaderCell(label: &amp;quot;Summary&amp;quot;),
          a!gridLayoutHeaderCell(label: &amp;quot;Qty&amp;quot;, align: &amp;quot;RIGHT&amp;quot;),
          a!gridLayoutHeaderCell(label: &amp;quot;U/P&amp;quot;, align: &amp;quot;RIGHT&amp;quot;),
          a!gridLayoutHeaderCell(label: &amp;quot;Amount&amp;quot;, align: &amp;quot;RIGHT&amp;quot;),
          a!gridLayoutHeaderCell(label: &amp;quot;Department&amp;quot;),
          a!gridLayoutHeaderCell(label: &amp;quot;Due&amp;quot;, align: &amp;quot;RIGHT&amp;quot;),
          a!gridLayoutHeaderCell(label: &amp;quot;Decision&amp;quot;),
          a!gridLayoutHeaderCell(label: &amp;quot;Reason&amp;quot;)
        },
        columnConfigs: {
          a!gridLayoutColumnConfig(width: &amp;quot;DISTRIBUTE&amp;quot;, weight: 5),
          a!gridLayoutColumnConfig(width: &amp;quot;DISTRIBUTE&amp;quot;),
          a!gridLayoutColumnConfig(width: &amp;quot;DISTRIBUTE&amp;quot;),
          a!gridLayoutColumnConfig(width: &amp;quot;DISTRIBUTE&amp;quot;, weight: 2),
          a!gridLayoutColumnConfig(width: &amp;quot;DISTRIBUTE&amp;quot;, weight: 3),
          a!gridLayoutColumnConfig(width: &amp;quot;DISTRIBUTE&amp;quot;, weight: 3),
          a!gridLayoutColumnConfig(width: &amp;quot;DISTRIBUTE&amp;quot;, weight: 3),
          a!gridLayoutColumnConfig(width: &amp;quot;DISTRIBUTE&amp;quot;, weight: 3)
        },
        rows: a!forEach(
          /*items:todatasubset(arrayToPage: local!items,pagingConfiguration: local!pagingInfo),*/
          items: local!data.data,
          expression:{
            a!gridRowLayout(
              id: fv!item.id,
              contents: {
                a!textField(
                  /* Labels are not visible in grid cells but are necessary to meet accessibility requirements */
                  label: &amp;quot;summary &amp;quot; &amp;amp; fv!index,
                  value: fv!item.summary,
                  readOnly: true
                ),
                a!integerField(
                  label: &amp;quot;qty &amp;quot; &amp;amp; fv!index,
                  value: fv!item.qty,
                  readOnly: true,
                  align: &amp;quot;RIGHT&amp;quot;
                ),
                a!floatingPointField(
                  label: &amp;quot;unitPrice &amp;quot; &amp;amp; fv!index,
                  value: fv!item.unitPrice,
                  readOnly: true,
                  align: &amp;quot;RIGHT&amp;quot;
                ),
                a!textField(
                  label: &amp;quot;amount &amp;quot; &amp;amp; fv!index,
                  value: if(
                    or(isnull(fv!item.qty), isnull(fv!item.unitPrice)),
                    null,
                    a!currency(
                      isoCode: &amp;quot;USD&amp;quot;,
                      value: fv!item.qty * fv!item.unitPrice
                    )
                  ),
                  readOnly: true,
                  align: &amp;quot;RIGHT&amp;quot;
                ),
                a!dropdownField(
                  choiceLabels: {&amp;quot;Finance&amp;quot;, &amp;quot;Sales&amp;quot;},
                  choiceValues: {&amp;quot;Finance&amp;quot;, &amp;quot;Sales&amp;quot;},
                  label: &amp;quot;dept &amp;quot; &amp;amp; fv!index,
                  placeholder: &amp;quot;--Select-- &amp;quot;,
                  value: fv!item.dept,
                  disabled: true
                ),
                a!dateField(
                  label: &amp;quot;due &amp;quot; &amp;amp; fv!index,
                  value: fv!item.due,
                  readOnly: true,
                  align: &amp;quot;RIGHT&amp;quot;
                ),
                a!dropdownField(
                  choiceLabels: {&amp;quot;Approve&amp;quot;, &amp;quot;Reject&amp;quot;, &amp;quot;Need More Info&amp;quot;},
                  choiceValues: {&amp;quot;Approve&amp;quot;, &amp;quot;Reject&amp;quot;, &amp;quot;Need More Info&amp;quot;},
                  label: &amp;quot;decision &amp;quot; &amp;amp; fv!index,
                  placeholder: &amp;quot;--Select-- &amp;quot;,
                  value: fv!item.decision,
                  saveInto: fv!item.decision,
                  required: true
                ),
                a!textField(
                  label: &amp;quot;reason&amp;quot; &amp;amp; fv!index,
                  value: fv!item.reason,
                  saveInto: fv!item.reason,
                  required: and(
                    not(isnull(fv!item.decision)),
                    fv!item.decision &amp;lt;&amp;gt; &amp;quot;Approve&amp;quot;
                  ),
                  requiredMessage: &amp;quot;A reason is required for items that are not approved&amp;quot;
                )
              }
            )
          }
        ),
        selectionValue: local!selectedIndices,
        selectionSaveInto: {
          a!save(
            local!selectedIndices,
            a!localVariables(
              local!currentPageIds: enumerate(length(local!data.data))+ local!pagingInfo.startIndex,
              if(
                a!isNullOrEmpty(
                  difference(
                    local!currentPageIds,
                    tointeger(a!flatten(save!value))
                  )
                ),
                union(
                  tointeger({}),
                  a!flatten(append(local!selectedIndices,a!flatten(save!value)))
                ),
                if(
                  a!isNullOrEmpty(a!flatten(save!value)),
                  difference(local!selectedIndices,local!currentPageIds),
                  a!flatten(save!value)
                )
              )
            )
          )
        },
        selectable: true,
        rowHeader: 2
      ),
      a!richTextDisplayField(
        labelPosition: &amp;quot;COLLAPSED&amp;quot;,
        value: {
          a!richTextIcon(
            icon: &amp;quot;angle-left-bold&amp;quot;,
            link: if(
              local!pagingInfo.startIndex = 1,
              null,
              a!dynamicLink(
                saveInto: a!save(local!pagingInfo.startIndex,local!pagingInfo.startIndex-local!pagingInfo.batchSize)
              )
            )
          ),
          local!pagingInfo.startIndex&amp;amp;&amp;quot; to &amp;quot;&amp;amp;sum(tointeger(local!pagingInfo.startIndex),tointeger(local!pagingInfo.batchSize))-1,
          a!richTextIcon(
            icon: &amp;quot;angle-right-bold&amp;quot;,
            link: a!dynamicLink(
              saveInto: a!save(local!pagingInfo.startIndex,tointeger(local!pagingInfo.startIndex)+tointeger(local!pagingInfo.batchSize))
            )
          )
        },
        align: &amp;quot;LEFT&amp;quot;
      )

    },
  )
)&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Issue in editable grid bulk selection</title><link>https://community.appian.com/thread/147605?ContentTypeID=1</link><pubDate>Mon, 28 Apr 2025 14:48:02 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:60b24213-6886-4013-8f23-acad298bdaad</guid><dc:creator>ganeshg0004</dc:creator><description>&lt;p&gt;Thanks Vyshnavi, for the suggestion...&lt;/p&gt;
&lt;p&gt;I have fixed this issue by applying a condition for &amp;quot;select all&amp;quot; and &amp;quot;deselect all&amp;quot; in the selection save into as per below&lt;pre class="ui-code" data-mode="text"&gt; selectionValue: local!selectedIndices,
        selectionSaveInto: a!save(
          local!selectedIndices,
          if(
            a!isNullOrEmpty(index(save!value,1,null)),
            difference(local!selectedIndices,local!gridData.data.id),
            if(
              length(wherecontains(local!gridData.data.id,tointeger(save!value)))=length(local!gridData.data),
              union(append(local!selectedIndices,a!flatten(save!value)),append(local!selectedIndices,a!flatten(save!value)))
              a!flatten(save!value)
            )
          )
        ),&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Issue in editable grid bulk selection</title><link>https://community.appian.com/thread/147595?ContentTypeID=1</link><pubDate>Mon, 28 Apr 2025 05:35:30 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:e13a492a-6b5c-4aae-a53d-c9c70ae2987e</guid><dc:creator>Vyshnavi Naripeddi</dc:creator><description>&lt;p class="" data-start="79" data-end="89"&gt;Hi &lt;a href="/members/ganeshg0004"&gt;ganeshg0004&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="" data-start="91" data-end="485"&gt;The issue is with the &amp;quot;Select All&amp;quot; functionality. When you select all values using it and then navigate to the next page and select all again, it overrides the previously selected values. However, this issue does not occur if you manually select each value one by one, move to the next page, and continue the same process &amp;mdash; in that case, the select and deselect functionality works as expected.&lt;/p&gt;
&lt;p class="" data-start="487" data-end="541"&gt;I would suggest the following options to resolve this:&lt;/p&gt;
&lt;ol data-start="543" data-end="655"&gt;
&lt;li class="" data-start="543" data-end="588"&gt;
&lt;p class="" data-start="546" data-end="588"&gt;Build a custom &amp;quot;Select All&amp;quot; functionality.&lt;/p&gt;
&lt;/li&gt;
&lt;li class="" data-start="589" data-end="655"&gt;
&lt;p class="" data-start="592" data-end="655"&gt;Alternatively, change the selection style to &lt;strong data-start="637" data-end="654"&gt;ROW_HIGHLIGHT&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="json"&gt;selectionValue: local!selectedIndices,
selectionSaveInto: a!save(
          local!selectedIndices,
          a!flatten(save!value)
        ),
selectionStyle: &amp;quot;ROW_HIGHLIGHT&amp;quot;&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Issue in editable grid bulk selection</title><link>https://community.appian.com/thread/147591?ContentTypeID=1</link><pubDate>Sun, 27 Apr 2025 08:07:56 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:5f5d95e4-cfe5-4d4b-931d-b91082ecb369</guid><dc:creator>ganeshg0004</dc:creator><description>&lt;p&gt;Thanks for the response, Mike...&lt;/p&gt;
&lt;p&gt;I have tried to append instead of override. It is appending the next page selected all IDs, but when I try to deselect any row, that is not happening. It is always being selected.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I tried like this.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;selectionValue: local!selectedIndices,
        selectionSaveInto: if(
          a!isNullOrEmpty(local!selectedIndices),
          a!save(
            local!selectedIndices,
            a!flatten(save!value)
          ),
          a!save(
            local!selectedIndices,
            append(
              local!selectedIndices,
              a!flatten(save!value)
            )
          )
        )&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Issue in editable grid bulk selection</title><link>https://community.appian.com/thread/147590?ContentTypeID=1</link><pubDate>Sun, 27 Apr 2025 07:54:01 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:0e15bfed-4fca-40a9-b31a-d710deee38db</guid><dc:creator>ganeshg0004</dc:creator><description>&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;a!localVariables(
  local!items: {
    a!map(id: 1, summary: &amp;quot;Item 1&amp;quot;, qty: 1, unitPrice: 10, dept: &amp;quot;Sales&amp;quot;,   due: today() + 10),
    a!map(id: 2, summary: &amp;quot;Item 2&amp;quot;, qty: 2, unitPrice: 20, dept: &amp;quot;Finance&amp;quot;, due: today() + 20),
    a!map(id: 3, summary: &amp;quot;Item 3&amp;quot;, qty: 3, unitPrice: 30, dept: &amp;quot;Sales&amp;quot;,   due: today() + 30),
    a!map(id: 4, summary: &amp;quot;Item 4&amp;quot;, qty: 1, unitPrice: 10, dept: &amp;quot;Sales&amp;quot;,   due: today() + 10),
    a!map(id: 5, summary: &amp;quot;Item 5&amp;quot;, qty: 2, unitPrice: 20, dept: &amp;quot;Finance&amp;quot;, due: today() + 20),
    a!map(id: 6, summary: &amp;quot;Item 6&amp;quot;, qty: 3, unitPrice: 30, dept: &amp;quot;Sales&amp;quot;,   due: today() + 30),
    a!map(id: 7, summary: &amp;quot;Item 7&amp;quot;, qty: 1, unitPrice: 10, dept: &amp;quot;Sales&amp;quot;,   due: today() + 10),
    a!map(id: 8, summary: &amp;quot;Item 8&amp;quot;, qty: 2, unitPrice: 20, dept: &amp;quot;Finance&amp;quot;, due: today() + 20),
    a!map(id: 9, summary: &amp;quot;Item 9&amp;quot;, qty: 3, unitPrice: 30, dept: &amp;quot;Sales&amp;quot;,   due: today() + 30),
    a!map(id: 10, summary: &amp;quot;Item 10&amp;quot;, qty: 1, unitPrice: 10, dept: &amp;quot;Sales&amp;quot;,   due: today() + 10),
    a!map(id: 11, summary: &amp;quot;Item 11&amp;quot;, qty: 2, unitPrice: 20, dept: &amp;quot;Finance&amp;quot;, due: today() + 20),
    a!map(id: 12, summary: &amp;quot;Item 13&amp;quot;, qty: 3, unitPrice: 30, dept: &amp;quot;Sales&amp;quot;,   due: today() + 30)
    
  },
  local!selectedIndices: tointeger({}),
  local!pagingInfo:a!pagingInfo(startIndex: 1,batchSize: 5),
  a!formLayout(
    label: &amp;quot;&amp;quot;,
    contents: {
      a!gridLayout(
        headerCells: {
          a!gridLayoutHeaderCell(label: &amp;quot;Summary&amp;quot;),
          a!gridLayoutHeaderCell(label: &amp;quot;Qty&amp;quot;, align: &amp;quot;RIGHT&amp;quot;),
          a!gridLayoutHeaderCell(label: &amp;quot;U/P&amp;quot;, align: &amp;quot;RIGHT&amp;quot;),
          a!gridLayoutHeaderCell(label: &amp;quot;Amount&amp;quot;, align: &amp;quot;RIGHT&amp;quot;),
          a!gridLayoutHeaderCell(label: &amp;quot;Department&amp;quot;),
          a!gridLayoutHeaderCell(label: &amp;quot;Due&amp;quot;, align: &amp;quot;RIGHT&amp;quot;),
          a!gridLayoutHeaderCell(label: &amp;quot;Decision&amp;quot;),
          a!gridLayoutHeaderCell(label: &amp;quot;Reason&amp;quot;)
        },
        columnConfigs: {
          a!gridLayoutColumnConfig(width: &amp;quot;DISTRIBUTE&amp;quot;, weight: 5),
          a!gridLayoutColumnConfig(width: &amp;quot;DISTRIBUTE&amp;quot;),
          a!gridLayoutColumnConfig(width: &amp;quot;DISTRIBUTE&amp;quot;),
          a!gridLayoutColumnConfig(width: &amp;quot;DISTRIBUTE&amp;quot;, weight: 2),
          a!gridLayoutColumnConfig(width: &amp;quot;DISTRIBUTE&amp;quot;, weight: 3),
          a!gridLayoutColumnConfig(width: &amp;quot;DISTRIBUTE&amp;quot;, weight: 3),
          a!gridLayoutColumnConfig(width: &amp;quot;DISTRIBUTE&amp;quot;, weight: 3),
          a!gridLayoutColumnConfig(width: &amp;quot;DISTRIBUTE&amp;quot;, weight: 3)
        },
        rows: a!forEach(
          items:todatasubset(arrayToPage: local!items,pagingConfiguration: local!pagingInfo),
          expression:{
            a!gridRowLayout(
              id: fv!item.id,
              contents: {
                a!textField(
                  /* Labels are not visible in grid cells but are necessary to meet accessibility requirements */
                  label: &amp;quot;summary &amp;quot; &amp;amp; fv!index,
                  value: fv!item.summary,
                  readOnly: true
                ),
                a!integerField(
                  label: &amp;quot;qty &amp;quot; &amp;amp; fv!index,
                  value: fv!item.qty,
                  readOnly: true,
                  align: &amp;quot;RIGHT&amp;quot;
                ),
                a!floatingPointField(
                  label: &amp;quot;unitPrice &amp;quot; &amp;amp; fv!index,
                  value: fv!item.unitPrice,
                  readOnly: true,
                  align: &amp;quot;RIGHT&amp;quot;
                ),
                a!textField(
                  label: &amp;quot;amount &amp;quot; &amp;amp; fv!index,
                  value: if(
                    or(isnull(fv!item.qty), isnull(fv!item.unitPrice)),
                    null,
                    a!currency(
                      isoCode: &amp;quot;USD&amp;quot;,
                      value: fv!item.qty * fv!item.unitPrice
                    )
                  ),
                  readOnly: true,
                  align: &amp;quot;RIGHT&amp;quot;
                ),
                a!dropdownField(
                  choiceLabels: {&amp;quot;Finance&amp;quot;, &amp;quot;Sales&amp;quot;},
                  choiceValues: {&amp;quot;Finance&amp;quot;, &amp;quot;Sales&amp;quot;},
                  label: &amp;quot;dept &amp;quot; &amp;amp; fv!index,
                  placeholder: &amp;quot;--Select-- &amp;quot;,
                  value: fv!item.dept,
                  disabled: true
                ),
                a!dateField(
                  label: &amp;quot;due &amp;quot; &amp;amp; fv!index,
                  value: fv!item.due,
                  readOnly: true,
                  align: &amp;quot;RIGHT&amp;quot;
                ),
                a!dropdownField(
                  choiceLabels: {&amp;quot;Approve&amp;quot;, &amp;quot;Reject&amp;quot;, &amp;quot;Need More Info&amp;quot;},
                  choiceValues: {&amp;quot;Approve&amp;quot;, &amp;quot;Reject&amp;quot;, &amp;quot;Need More Info&amp;quot;},
                  label: &amp;quot;decision &amp;quot; &amp;amp; fv!index,
                  placeholder: &amp;quot;--Select-- &amp;quot;,
                  value: fv!item.decision,
                  saveInto: fv!item.decision,
                  required: true
                ),
                a!textField(
                  label: &amp;quot;reason&amp;quot; &amp;amp; fv!index,
                  value: fv!item.reason,
                  saveInto: fv!item.reason,
                  required: and(
                    not(isnull(fv!item.decision)),
                    fv!item.decision &amp;lt;&amp;gt; &amp;quot;Approve&amp;quot;
                  ),
                  requiredMessage: &amp;quot;A reason is required for items that are not approved&amp;quot;
                )
              }
            )
          }
        ),
        selectionValue: local!selectedIndices,
        selectionSaveInto: a!save(local!selectedIndices, a!flatten(save!value)),
        selectable: true,
        rowHeader: 2
      ),
      a!richTextDisplayField(
        labelPosition: &amp;quot;COLLAPSED&amp;quot;,
        value: {
          a!richTextIcon(
            icon: &amp;quot;angle-left-bold&amp;quot;,
            link: a!dynamicLink(
              saveInto: a!save(local!pagingInfo.startIndex,local!pagingInfo.startIndex-local!pagingInfo.batchSize)
            )
          ),
          local!pagingInfo.startIndex&amp;amp;&amp;quot; to &amp;quot;&amp;amp;sum(tointeger(local!pagingInfo.startIndex),tointeger(local!pagingInfo.batchSize))-1,
          a!richTextIcon(
            icon: &amp;quot;angle-right-bold&amp;quot;,
            link: a!dynamicLink(
              saveInto: a!save(local!pagingInfo.startIndex,tointeger(local!pagingInfo.startIndex)+tointeger(local!pagingInfo.batchSize))
            )
          )
        },
        align: &amp;quot;RIGHT&amp;quot;
      )
    
    },
  )
)&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Issue in editable grid bulk selection</title><link>https://community.appian.com/thread/147589?ContentTypeID=1</link><pubDate>Sun, 27 Apr 2025 07:49:19 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:744d8163-69c4-4396-981d-5c11d4727c36</guid><dc:creator>Stefan Helzle</dc:creator><description>&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="/resized-image/__size/640x480/__key/communityserver-discussions-components-files/13/pastedimage1745740153559v1.png" alt=" " /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Issue in editable grid bulk selection</title><link>https://community.appian.com/thread/147588?ContentTypeID=1</link><pubDate>Sun, 27 Apr 2025 07:45:07 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:a09dbbb1-6f5d-4758-9a6b-25486833f1e9</guid><dc:creator>ganeshg0004</dc:creator><description>&lt;p&gt;No, I did not.&lt;/p&gt;
&lt;p&gt;let me ping code also&lt;/p&gt;
&lt;p&gt;a!localVariables(&lt;br /&gt; local!items: {&lt;br /&gt; a!map(id: 1, summary: &amp;quot;Item 1&amp;quot;, qty: 1, unitPrice: 10, dept: &amp;quot;Sales&amp;quot;, due: today() + 10),&lt;br /&gt; a!map(id: 2, summary: &amp;quot;Item 2&amp;quot;, qty: 2, unitPrice: 20, dept: &amp;quot;Finance&amp;quot;, due: today() + 20),&lt;br /&gt; a!map(id: 3, summary: &amp;quot;Item 3&amp;quot;, qty: 3, unitPrice: 30, dept: &amp;quot;Sales&amp;quot;, due: today() + 30),&lt;br /&gt; a!map(id: 4, summary: &amp;quot;Item 4&amp;quot;, qty: 1, unitPrice: 10, dept: &amp;quot;Sales&amp;quot;, due: today() + 10),&lt;br /&gt; a!map(id: 5, summary: &amp;quot;Item 5&amp;quot;, qty: 2, unitPrice: 20, dept: &amp;quot;Finance&amp;quot;, due: today() + 20),&lt;br /&gt; a!map(id: 6, summary: &amp;quot;Item 6&amp;quot;, qty: 3, unitPrice: 30, dept: &amp;quot;Sales&amp;quot;, due: today() + 30),&lt;br /&gt; a!map(id: 7, summary: &amp;quot;Item 7&amp;quot;, qty: 1, unitPrice: 10, dept: &amp;quot;Sales&amp;quot;, due: today() + 10),&lt;br /&gt; a!map(id: 8, summary: &amp;quot;Item 8&amp;quot;, qty: 2, unitPrice: 20, dept: &amp;quot;Finance&amp;quot;, due: today() + 20),&lt;br /&gt; a!map(id: 9, summary: &amp;quot;Item 9&amp;quot;, qty: 3, unitPrice: 30, dept: &amp;quot;Sales&amp;quot;, due: today() + 30),&lt;br /&gt; a!map(id: 10, summary: &amp;quot;Item 10&amp;quot;, qty: 1, unitPrice: 10, dept: &amp;quot;Sales&amp;quot;, due: today() + 10),&lt;br /&gt; a!map(id: 11, summary: &amp;quot;Item 11&amp;quot;, qty: 2, unitPrice: 20, dept: &amp;quot;Finance&amp;quot;, due: today() + 20),&lt;br /&gt; a!map(id: 12, summary: &amp;quot;Item 13&amp;quot;, qty: 3, unitPrice: 30, dept: &amp;quot;Sales&amp;quot;, due: today() + 30)&lt;br /&gt; &lt;br /&gt; },&lt;br /&gt; local!selectedIndices: tointeger({}),&lt;br /&gt; local!pagingInfo:a!pagingInfo(startIndex: 1,batchSize: 5),&lt;br /&gt; a!formLayout(&lt;br /&gt; label: &amp;quot;&amp;quot;,&lt;br /&gt; contents: {&lt;br /&gt; a!gridLayout(&lt;br /&gt; headerCells: {&lt;br /&gt; a!gridLayoutHeaderCell(label: &amp;quot;Summary&amp;quot;),&lt;br /&gt; a!gridLayoutHeaderCell(label: &amp;quot;Qty&amp;quot;, align: &amp;quot;RIGHT&amp;quot;),&lt;br /&gt; a!gridLayoutHeaderCell(label: &amp;quot;U/P&amp;quot;, align: &amp;quot;RIGHT&amp;quot;),&lt;br /&gt; a!gridLayoutHeaderCell(label: &amp;quot;Amount&amp;quot;, align: &amp;quot;RIGHT&amp;quot;),&lt;br /&gt; a!gridLayoutHeaderCell(label: &amp;quot;Department&amp;quot;),&lt;br /&gt; a!gridLayoutHeaderCell(label: &amp;quot;Due&amp;quot;, align: &amp;quot;RIGHT&amp;quot;),&lt;br /&gt; a!gridLayoutHeaderCell(label: &amp;quot;Decision&amp;quot;),&lt;br /&gt; a!gridLayoutHeaderCell(label: &amp;quot;Reason&amp;quot;)&lt;br /&gt; },&lt;br /&gt; columnConfigs: {&lt;br /&gt; a!gridLayoutColumnConfig(width: &amp;quot;DISTRIBUTE&amp;quot;, weight: 5),&lt;br /&gt; a!gridLayoutColumnConfig(width: &amp;quot;DISTRIBUTE&amp;quot;),&lt;br /&gt; a!gridLayoutColumnConfig(width: &amp;quot;DISTRIBUTE&amp;quot;),&lt;br /&gt; a!gridLayoutColumnConfig(width: &amp;quot;DISTRIBUTE&amp;quot;, weight: 2),&lt;br /&gt; a!gridLayoutColumnConfig(width: &amp;quot;DISTRIBUTE&amp;quot;, weight: 3),&lt;br /&gt; a!gridLayoutColumnConfig(width: &amp;quot;DISTRIBUTE&amp;quot;, weight: 3),&lt;br /&gt; a!gridLayoutColumnConfig(width: &amp;quot;DISTRIBUTE&amp;quot;, weight: 3),&lt;br /&gt; a!gridLayoutColumnConfig(width: &amp;quot;DISTRIBUTE&amp;quot;, weight: 3)&lt;br /&gt; },&lt;br /&gt; rows: a!forEach(&lt;br /&gt; items:todatasubset(arrayToPage: local!items,pagingConfiguration: local!pagingInfo),&lt;br /&gt; expression:{&lt;br /&gt; a!gridRowLayout(&lt;br /&gt; id: fv!item.id,&lt;br /&gt; contents: {&lt;br /&gt; a!textField(&lt;br /&gt; /* Labels are not visible in grid cells but are necessary to meet accessibility requirements */&lt;br /&gt; label: &amp;quot;summary &amp;quot; &amp;amp; fv!index,&lt;br /&gt; value: fv!item.summary,&lt;br /&gt; readOnly: true&lt;br /&gt; ),&lt;br /&gt; a!integerField(&lt;br /&gt; label: &amp;quot;qty &amp;quot; &amp;amp; fv!index,&lt;br /&gt; value: fv!item.qty,&lt;br /&gt; readOnly: true,&lt;br /&gt; align: &amp;quot;RIGHT&amp;quot;&lt;br /&gt; ),&lt;br /&gt; a!floatingPointField(&lt;br /&gt; label: &amp;quot;unitPrice &amp;quot; &amp;amp; fv!index,&lt;br /&gt; value: fv!item.unitPrice,&lt;br /&gt; readOnly: true,&lt;br /&gt; align: &amp;quot;RIGHT&amp;quot;&lt;br /&gt; ),&lt;br /&gt; a!textField(&lt;br /&gt; label: &amp;quot;amount &amp;quot; &amp;amp; fv!index,&lt;br /&gt; value: if(&lt;br /&gt; or(isnull(fv!item.qty), isnull(fv!item.unitPrice)),&lt;br /&gt; null,&lt;br /&gt; a!currency(&lt;br /&gt; isoCode: &amp;quot;USD&amp;quot;,&lt;br /&gt; value: fv!item.qty * fv!item.unitPrice&lt;br /&gt; )&lt;br /&gt; ),&lt;br /&gt; readOnly: true,&lt;br /&gt; align: &amp;quot;RIGHT&amp;quot;&lt;br /&gt; ),&lt;br /&gt; a!dropdownField(&lt;br /&gt; choiceLabels: {&amp;quot;Finance&amp;quot;, &amp;quot;Sales&amp;quot;},&lt;br /&gt; choiceValues: {&amp;quot;Finance&amp;quot;, &amp;quot;Sales&amp;quot;},&lt;br /&gt; label: &amp;quot;dept &amp;quot; &amp;amp; fv!index,&lt;br /&gt; placeholder: &amp;quot;--Select-- &amp;quot;,&lt;br /&gt; value: fv!item.dept,&lt;br /&gt; disabled: true&lt;br /&gt; ),&lt;br /&gt; a!dateField(&lt;br /&gt; label: &amp;quot;due &amp;quot; &amp;amp; fv!index,&lt;br /&gt; value: fv!item.due,&lt;br /&gt; readOnly: true,&lt;br /&gt; align: &amp;quot;RIGHT&amp;quot;&lt;br /&gt; ),&lt;br /&gt; a!dropdownField(&lt;br /&gt; choiceLabels: {&amp;quot;Approve&amp;quot;, &amp;quot;Reject&amp;quot;, &amp;quot;Need More Info&amp;quot;},&lt;br /&gt; choiceValues: {&amp;quot;Approve&amp;quot;, &amp;quot;Reject&amp;quot;, &amp;quot;Need More Info&amp;quot;},&lt;br /&gt; label: &amp;quot;decision &amp;quot; &amp;amp; fv!index,&lt;br /&gt; placeholder: &amp;quot;--Select-- &amp;quot;,&lt;br /&gt; value: fv!item.decision,&lt;br /&gt; saveInto: fv!item.decision,&lt;br /&gt; required: true&lt;br /&gt; ),&lt;br /&gt; a!textField(&lt;br /&gt; label: &amp;quot;reason&amp;quot; &amp;amp; fv!index,&lt;br /&gt; value: fv!item.reason,&lt;br /&gt; saveInto: fv!item.reason,&lt;br /&gt; required: and(&lt;br /&gt; not(isnull(fv!item.decision)),&lt;br /&gt; fv!item.decision &amp;lt;&amp;gt; &amp;quot;Approve&amp;quot;&lt;br /&gt; ),&lt;br /&gt; requiredMessage: &amp;quot;A reason is required for items that are not approved&amp;quot;&lt;br /&gt; )&lt;br /&gt; }&lt;br /&gt; )&lt;br /&gt; }&lt;br /&gt; ),&lt;br /&gt; selectionValue: local!selectedIndices,&lt;br /&gt; selectionSaveInto: a!save(local!selectedIndices, a!flatten(save!value)),&lt;br /&gt; selectable: true,&lt;br /&gt; rowHeader: 2&lt;br /&gt; ),&lt;br /&gt; a!richTextDisplayField(&lt;br /&gt; labelPosition: &amp;quot;COLLAPSED&amp;quot;,&lt;br /&gt; value: {&lt;br /&gt; a!richTextIcon(&lt;br /&gt; icon: &amp;quot;angle-left-bold&amp;quot;,&lt;br /&gt; link: a!dynamicLink(&lt;br /&gt; saveInto: a!save(local!pagingInfo.startIndex,local!pagingInfo.startIndex-local!pagingInfo.batchSize)&lt;br /&gt; )&lt;br /&gt; ),&lt;br /&gt; local!pagingInfo.startIndex&amp;amp;&amp;quot; to &amp;quot;&amp;amp;sum(tointeger(local!pagingInfo.startIndex),tointeger(local!pagingInfo.batchSize))-1,&lt;br /&gt; a!richTextIcon(&lt;br /&gt; icon: &amp;quot;angle-right-bold&amp;quot;,&lt;br /&gt; link: a!dynamicLink(&lt;br /&gt; saveInto: a!save(local!pagingInfo.startIndex,tointeger(local!pagingInfo.startIndex)+tointeger(local!pagingInfo.batchSize))&lt;br /&gt; )&lt;br /&gt; )&lt;br /&gt; },&lt;br /&gt; align: &amp;quot;RIGHT&amp;quot;&lt;br /&gt; )&lt;br /&gt; &lt;br /&gt; },&lt;br /&gt; )&lt;br /&gt;)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Issue in editable grid bulk selection</title><link>https://community.appian.com/thread/147587?ContentTypeID=1</link><pubDate>Sun, 27 Apr 2025 07:40:20 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:b5e6a9c9-b57d-4006-b547-4d67400e193a</guid><dc:creator>Stefan Helzle</dc:creator><description>&lt;p&gt;I know that you are not using the built in function. But did you consider to add a separate button?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Issue in editable grid bulk selection</title><link>https://community.appian.com/thread/147586?ContentTypeID=1</link><pubDate>Sun, 27 Apr 2025 07:33:14 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:228750fc-c4cd-4837-ba51-571ec4031d8e</guid><dc:creator>ganeshg0004</dc:creator><description>&lt;p&gt;Thanks for the response, Stefan...&lt;/p&gt;
&lt;p&gt;No, I am not using a separate button to select all; I am using the grid selection label level checkbox. Highlighted one&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" alt=" " src="/resized-image/__size/640x480/__key/communityserver-discussions-components-files/13/screen-shot.PNG" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Issue in editable grid bulk selection</title><link>https://community.appian.com/thread/147534?ContentTypeID=1</link><pubDate>Thu, 24 Apr 2025 17:55:15 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:7191a20e-6416-4b1d-a50c-3d4fe7f8917b</guid><dc:creator>Mike Schmitt</dc:creator><description>&lt;p&gt;I would assume you can build some conditionality into your Selection Save Into, in order to check whether the save target already contains some value, and instead of overwriting it, append to it...&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Issue in editable grid bulk selection</title><link>https://community.appian.com/thread/147529?ContentTypeID=1</link><pubDate>Thu, 24 Apr 2025 15:47:16 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:e8e4e400-d50c-4734-8db7-8ad217617085</guid><dc:creator>Stefan Helzle</dc:creator><description>&lt;p&gt;Did you consider to add a separate button to select all items across pages?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>