I was doing some QA on an internal module that uses export-ui and noticed that clicking the enable/disable links. I tried the same thing on a clean installation using stylizer and noticed the same behavior. I traced it into ctools_export_ui::list_page() which is called by enable_page()/disable_page() to rebuild the table. The critical section seems to be:
$this->rows = array(); $this->sorts = array(); $form_state = array( 'plugin' => $this->plugin, 'input' => $input, 'rerender' => TRUE, 'no_redirect' => TRUE, 'object' => &$this, ); $help_area = $this->help_area($form_state); ctools_include('form'); $form = ctools_build_form('ctools_export_ui_list_form', $form_state); $output = $this->list_header($form_state) . $this->list_render($form_state) . $this->list_footer($form_state);
$this->rows gets cleared and ctools_export_ui_list_form should be submitted, calling list_form_submit() which would rebuild it before list_render() is called. In the non-JS flow it works correctly, I'm trying to figure out what differs.