public function gotopage($parameters = array()) { $form = new form($parameters); $form->addField(new hiddenField('gridid', $parameters['gridid'])); // We need to rely on the gridid being sent correctly $grid = new mygrid($form->getFieldvalue('gridid')); $form->addField(new inlinetextField('page', 'Go to page #', '', array('required', 'numeric', 'range:1<->' . $grid->getTotalpages()))); $form->setSubmittext('Go to page'); if ($form->validate()) { $grid->setPage($form->getFieldvalue('page')); $template = new ui($this); $template->assign('grid', $grid); $this->response->addWaypoint('mygrid', 'jumppage', $grid->getId(), array('gridid' => $grid->getId(), 'page' => $form->getFieldvalue('page'))); $this->response->assign($form->getFieldvalue('gridid'), 'innerHTML', $template->fetch($parameters['viewprefix'] . 'mygridstructure.tpl')); $this->response->script('var myFx = new Fx.Scroll(window).toElement(\'' . $form->getFieldvalue('gridid') . '\')'); } }