title: p:ajax event="sort" of p:dataTable does not process
body: <p>For some strange reason I can't manage to process my data when I'm using <code>&lt;p:ajax event="sort"</code> inside <code>&lt;p:dataTable</code> , while it works just fine for <code>&lt;p:ajax event="page"</code> and <code>&lt;p:ajax event="filter"</code></p>
  
  <p><em>I'm using myfaces 2.0.11 with primefaces 3.4 (tried with 4.0 snapshot)</em></p>
  
  <p>If I edit my cell input and do <strong><em>PAGINATE</em></strong> I <strong><em>do</em></strong> see the updated value of the cell in the listener method</p>
  
  <p>If i edit my cell input and do <strong><em>SORT</em></strong> I <strong><em>do NOT</em></strong> see the updated value of the cell in the listener method, Any Idea why? I mean both p:ajax (sort/page) got the process="@form" so why its does not process? I inspected the network of the chrome dev tools and in both cases (sort/page) the relevant updated values are being sent to the server, but for some reason in the sort listener the values are not updated , </p>
  
  <p>b.t.w the only suspicious difference between page and sort ajax request is the following parameter that is present only in the sort request is:</p>
  
  <p><code>my_table_skipChildren:true</code> , what does it mean? skip from processing ?</p>
  
  <p>I can grab the relevant ids+value from the request from the ExternalContext, but it will be last resort only</p>
  
  <p>Here is a really simple example</p>
  
  <p><strong>Session Scoped Bean code:</strong></p>
  
  <pre><code>@ManagedBean
  @SessionScoped
  public class myBean {
      private List&lt;MyObject&gt; myList = new ArrayList&lt;MyObject&gt;();
  
      @PostConstruct
      public void init() {
          myList.add(new MyObject("1", "2"));
          myList.add(new MyObject("11", "22"));
          myList.add(new MyObject("111", "222"));
  
          myList.add(new MyObject("1a", "2a"));
          myList.add(new MyObject("11a", "22a"));
          myList.add(new MyObject("111a", "222a"));
     }
  
      public List&lt;MyObject&gt; getMyList() {
          return myList;
      }
  
      public void setMyList(List&lt;MyObject&gt; myList) {
          this.myList = myList;
      }   
  }
  </code></pre>
  
  <p><strong>MyObject code</strong></p>
  
  <pre><code>public class MyObject {
  
     private String one;
     private String two;
  
     public MyObject(String one, String two) {
        super();
        this.one = one;
        this.two = two;
     }
  
     public String getOne() {
        return one;
     }
  
     public void setOne(String one) {
        this.one = one;
     }
  
     public String getTwo() {
        return two;
     }
  
     public void setTwo(String two) {
         this.two = two;
     }
  }
  </code></pre>
  
  <p><strong>XHTML :</strong></p>
  
  <pre><code>&lt;p:dataTable id="my_table" value="#{myBean.myList}"
     var="deviceRow" widgetVar="myTable"
     paginator="true" rows="4" paginatorPosition="bottom"
     paginatorTemplate="{FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}"&gt;
  
     &lt;p:ajax process="@form" event="sort" listener="#{myBean.detectSortEvent}"&gt;&lt;/p:ajax&gt;
     &lt;p:ajax process="@form" event="page" listener="#{myBean.detectPageEvent}"&gt;&lt;/p:ajax&gt;
  
     &lt;p:column id="table_selection_column_one" sortBy="#{deviceRow.one}" filterBy="#{deviceRow.one}"&gt;
  
        &lt;f:facet name="header"&gt;
           &lt;h:outputText value="Column One" /&gt;
        &lt;/f:facet&gt;
        &lt;h:inputText id="myRow_One" value="#{deviceRow.one}" /&gt;
     &lt;/p:column&gt;
  
     &lt;p:column id="table_selection_column_two" sortBy="#{deviceRow.two}" filterBy="#{deviceRow.two}"&gt;
        &lt;f:facet name="header"&gt;
           &lt;h:outputText value="Column Two" /&gt; 
        &lt;/f:facet&gt;
        &lt;h:inputText id="myRow_Two" value="#{deviceRow.two}" /&gt;
     &lt;/p:column&gt;
  
  &lt;/p:dataTable&gt;
  </code></pre>
  
  <p>(I also asked it on primefaces forum but got no response)</p>
  
  <hr>
  
  <p>Tried <strong>Andy</strong> workaround (adding <code>editable="true"</code> to table, but its no good</p>
  
  <p>The scenario is as follows: change some value of an input text , than click on table column header to do sort</p>
  
  <p><em>Expectations</em>: Inside detectSortEvent listener I see the updated value inside the list</p>
  
  <p><em>Reality</em>: Same old value in the list</p>
  
  <p>Regards,</p>
  
  <p>Daniel.</p>