<?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>Adding rows in between rows in a grid.</title><link>https://community.appian.com/discussions/f/user-interface/13572/adding-rows-in-between-rows-in-a-grid</link><description>I know we can add rows at the end of the grid using addRowLink. Is it possible to add rows in between the grid rows? If yes, please explain. 
 Thanks, 
 Varsha</description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>RE: Adding rows in between rows in a grid.</title><link>https://community.appian.com/thread/61600?ContentTypeID=1</link><pubDate>Mon, 15 Oct 2018 18:57:35 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:ffb0d912-c6f8-4b6c-8d84-8b7cd8204fda</guid><dc:creator>Joubin Izadi</dc:creator><description>&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;=load(
  local!employees: {
      { id: 1, firstName: &amp;quot;John&amp;quot; , lastName: &amp;quot;Smith&amp;quot;},
      { id: 2, firstName: &amp;quot;Michael&amp;quot; , lastName: &amp;quot;Johnson&amp;quot;},
      { id: 3, firstName: &amp;quot;Mary&amp;quot;, lastName: &amp;quot;Reed&amp;quot;},
  },
  local!insertPos: count(local!employees)+1,
  a!formLayout(
    label: &amp;quot;Employee Data&amp;quot;,
    contents: {
      a!gridLayout(
        totalCount: count(local!employees),
        headerCells: {
          a!gridLayoutHeaderCell(label: &amp;quot;First Name&amp;quot; ),
          a!gridLayoutHeaderCell(label: &amp;quot;Last Name&amp;quot; ),
          a!gridLayoutHeaderCell(label: &amp;quot;&amp;quot; )
        },
        rows: a!forEach(
          items: local!employees,
          expression: a!gridRowLayout(
            contents: {
              a!textField(
                value: fv!item.firstName,
                saveInto: fv!item.firstName
              ),
              a!textField(
                value: fv!item.lastName,
                saveInto: fv!item.lastName
              ),
              a!imageField(
                label: &amp;quot;Add &amp;quot; &amp;amp; fv!index,
                images: a!documentImage(
                  document: a!iconIndicator(&amp;quot;ADD&amp;quot;),
                  altText: &amp;quot;Add Employee&amp;quot;,
                  caption: &amp;quot;Add Employee Here&amp;quot;,
                  link: 
                    a!dynamicLink(
                      label: &amp;quot;Add Employee&amp;quot;,
                      value: {
                        firstName: &amp;quot;&amp;quot;
                      },
                      saveInto: {
                        a!save(local!employees, insert(local!employees, save!value, fv!index))
                      }
                    )
                ),
                size: &amp;quot;ICON&amp;quot;
              )
            },
            id: fv!index
          )
        )
      )
    }
  )
)&lt;/pre&gt;I see three solutions here.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. You can add rows to any part of the grid using addRowLink. It is just most commonly seen with append. See the below example for how to always add at position 2 using insert instead (line 39).&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;=load(
  local!employees: {
      { id: 1, firstName: &amp;quot;John&amp;quot; , lastName: &amp;quot;Smith&amp;quot;},
      { id: 2, firstName: &amp;quot;Michael&amp;quot; , lastName: &amp;quot;Johnson&amp;quot;},
      { id: 3, firstName: &amp;quot;Mary&amp;quot;, lastName: &amp;quot;Reed&amp;quot;},
  },
  local!insertPos: count(local!employees)+1,
  a!formLayout(
    label: &amp;quot;Employee Data&amp;quot;,
    contents: {
      a!gridLayout(
        totalCount: count(local!employees),
        headerCells: {
          a!gridLayoutHeaderCell(label: &amp;quot;First Name&amp;quot; ),
          a!gridLayoutHeaderCell(label: &amp;quot;Last Name&amp;quot; )
        },
        rows: a!forEach(
          items: local!employees,
          expression: a!gridRowLayout(
            contents: {
              a!textField(
                value: fv!item.firstName,
                saveInto: fv!item.firstName
              ),
              a!textField(
                value: fv!item.lastName,
                saveInto: fv!item.lastName
              )
            },
            id: fv!index
          )
        )
        ,addRowlink: a!dynamicLink(
          label: &amp;quot;Add Employee&amp;quot;,
          value: {
            firstName: &amp;quot;&amp;quot;
          },
          saveInto: {
            a!save(local!employees, insert(local!employees, save!value, 2))
          }
        )
      )
    }
  )
)&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;However, maybe you want to add at a dynamic location within the grid? For example, maybe it&amp;#39;s the 2nd spot this time but next time you want to add it to the 4th spot?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. You could have the&amp;nbsp;user enter a row number, then add the line in the grid at that location:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;=load(
  local!employees: {
      { id: 1, firstName: &amp;quot;John&amp;quot; , lastName: &amp;quot;Smith&amp;quot;},
      { id: 2, firstName: &amp;quot;Michael&amp;quot; , lastName: &amp;quot;Johnson&amp;quot;},
      { id: 3, firstName: &amp;quot;Mary&amp;quot;, lastName: &amp;quot;Reed&amp;quot;},
  },
  local!insertPos: count(local!employees)+1,
  a!formLayout(
    label: &amp;quot;Employee Data&amp;quot;,
    contents: {
      a!gridLayout(
        totalCount: count(local!employees),
        headerCells: {
          a!gridLayoutHeaderCell(label: &amp;quot;First Name&amp;quot; ),
          a!gridLayoutHeaderCell(label: &amp;quot;Last Name&amp;quot; )
        },
        rows: a!forEach(
          items: local!employees,
          expression: a!gridRowLayout(
            contents: {
              a!textField(
                value: fv!item.firstName,
                saveInto: fv!item.firstName
              ),
              a!textField(
                value: fv!item.lastName,
                saveInto: fv!item.lastName
              )
            },
            id: fv!index
          )
        )
      ),
      a!integerField(
        label: &amp;quot;Insert Employee at Row:&amp;quot;,
        value: local!insertPos,
        saveInto: local!insertPos
      ),
      a!linkField(
        links:
          a!dynamicLink(
            label: &amp;quot;Add Employee&amp;quot;,
            value: {
              firstName: &amp;quot;&amp;quot;
            },
            saveInto: {
              a!save(local!employees, insert(local!employees, save!value, local!insertPos))
            }
          )
      )
    }
  )
)&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;But maybe you don&amp;#39;t want to have the user enter the number.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. You just want them to click a button next to a row and have it auto add right before it?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;=load(
  local!employees: {
      { id: 1, firstName: &amp;quot;John&amp;quot; , lastName: &amp;quot;Smith&amp;quot;},
      { id: 2, firstName: &amp;quot;Michael&amp;quot; , lastName: &amp;quot;Johnson&amp;quot;},
      { id: 3, firstName: &amp;quot;Mary&amp;quot;, lastName: &amp;quot;Reed&amp;quot;},
  },
  local!insertPos: count(local!employees)+1,
  a!formLayout(
    label: &amp;quot;Employee Data&amp;quot;,
    contents: {
      a!gridLayout(
        totalCount: count(local!employees),
        headerCells: {
          a!gridLayoutHeaderCell(label: &amp;quot;First Name&amp;quot; ),
          a!gridLayoutHeaderCell(label: &amp;quot;Last Name&amp;quot; ),
          a!gridLayoutHeaderCell(label: &amp;quot;&amp;quot; )
        },
        rows: a!forEach(
          items: local!employees,
          expression: a!gridRowLayout(
            contents: {
              a!textField(
                value: fv!item.firstName,
                saveInto: fv!item.firstName
              ),
              a!textField(
                value: fv!item.lastName,
                saveInto: fv!item.lastName
              ),
              a!imageField(
                label: &amp;quot;delete &amp;quot; &amp;amp; fv!index,
                images: a!documentImage(
                  document: a!iconIndicator(&amp;quot;ADD&amp;quot;),
                  altText: &amp;quot;Add Employee&amp;quot;,
                  caption: &amp;quot;Add Employee Here&amp;quot;,
                  link: 
                    a!dynamicLink(
                      label: &amp;quot;Add Employee&amp;quot;,
                      value: {
                        firstName: &amp;quot;&amp;quot;
                      },
                      saveInto: {
                        a!save(local!employees, insert(local!employees, save!value, fv!index))
                      }
                    )
                ),
                size: &amp;quot;ICON&amp;quot;
              )
            },
            id: fv!index
          )
        )
      )
    }
  )
)&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Hope one of these solutions can help!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Adding rows in between rows in a grid.</title><link>https://community.appian.com/thread/61599?ContentTypeID=1</link><pubDate>Mon, 15 Oct 2018 18:47:38 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:c29bab7f-b306-4777-9bf3-a26619372e51</guid><dc:creator>Vinay Kumar Rai</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Yes, you can add the row in between rows,&lt;/p&gt;
&lt;p&gt;Use &lt;strong&gt;Insert&lt;/strong&gt; function instead &lt;strong&gt;append&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;insert (&amp;lt;All Data&amp;gt;, &amp;lt;Data to Add&amp;gt;, &amp;lt;row Number&amp;gt;)&lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;
&lt;p&gt;Vinay&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>