} //To create grid exporting instant. $gridHandler = new GridServerHandler(); $type = getParameter('exportType'); //to get the data from data base. // $data1 = getTestData(); //echo "come here"; if ($gridHandler->sortInfo) { //echo "sortinfo:true<br>"; $sortOrder = $gridHandler->sortInfo[0]["sortOrder"]; //echo var_dump($gridHandler->sortInfo[0]); if ($sortOrder != "defaultsort") { $comp_field = $gridHandler->sortInfo[0]["columnId"]; //echo "sortOrder:". $comp_field; //echo $comp_field . " " . $sortOrder . "\n"; //usort($data1, "mycompare"); Utility::orderBy($data1, $comp_field . " " . $sortOrder); } } //for grid presentation $gridHandler->setData($data1); $gridHandler->setTotalRowNum(count($data1)); $gridHandler->printLoadResponseText(); ?>
public function get_datalist() { //die('deeeewww'); $model = $this->model; //dump($model);die; if (empty($model)) { die("model为空!"); } if ($_REQUEST["print"] == "1") { //echo '会执行么?';exit; $fieldsStr = $model->getPrintFieldString(); $enablePage = false; } else { $enablePage = $model->getModelInfo("enablePage"); if ($enablePage !== false) { $enablePage = true; } $fieldsStr = $model->getListFieldString(); //print_r($fieldsStr);exit; } require_once DXINFO_PATH . "Vendor/GridServerHandler.php"; $gridHandler = new \GridServerHandler(); if ($enablePage) { $start = intval($gridHandler->pageInfo["startRowNum"]) - 1; $pageSize = intval($gridHandler->pageInfo["pageSize"]); $pageSize = $pageSize == 0 ? 20 : $pageSize; } if ($start < 0) { $start = 0; } $where = array_merge($this->defaultWhere, $this->_search()); //dump($where);exit; //print_r($this->defaultWhere);exit; //print_r($this->_search());exit; //使用Model连贯操作时,每一个连贯操作,都会往Model对象中赋值,如果嵌套使用Model的连贯操作,会覆盖掉原来已经存在的值,导致bug。 if (isset($_REQUEST['export']) && !empty($_REQUEST['export'])) { $data_list = $model->where($where)->field($fieldsStr)->order($model->getModelInfo("order"))->select(); } else { if ($enablePage) { $data_list = $model->where($where)->field($fieldsStr)->limit($start . "," . $pageSize)->order($model->getModelInfo("order"))->select(); //echo $model->getLastSql();exit; //正常 // print_r($data_list);exit; } else { $data_list = $model->where($where)->field($fieldsStr)->order($model->getModelInfo("order"))->select(); } } //echo $model->getLastSql();exit; \Think\Log::write($model->getLastSql()); //无数据时data_list = null,此时返回的数据,grid不会更新rows,这导致,再删除最后一条数据时,grid无法删除前端的最后一样。 if (empty($data_list)) { $data_list = array(); } else { $data_change = $model->getModelInfo("data_change"); //var_dump($data_change);exit;是空哦 if (is_array($data_change)) { foreach ($data_change as $key => $val) { DxFunction::$val($data_list, $key); } } } //计算总计: if ($model->getModelInfo("showTotal") && sizeof($data_list) > 0) { $total = array(); foreach ($data_list as $data) { foreach ($data as $index => $vvv) { $total[$index] += floatval($vvv); } } //var_dump($total);exit; foreach ($this->model->getListFields() as $fieldName => $field) { if (array_key_exists("total", $field) && array_key_exists($fieldName, $total)) { $total[$fieldName] = $field["total"]; } } $data_list[] = $total; } //print_r($total);exit; //print_r($data_list);exit; if ($_REQUEST["print"] == "1") { $this->ajaxReturn(array("data" => $data_list, "fields" => $model->getPrintFields())); } else { if (isset($_REQUEST['export']) && !empty($_REQUEST['export'])) { $this->export($data_list, trim($_REQUEST['export'])); } else { $data_count = $enablePage ? $model->where($where)->count() : sizeof($data_list); $gridHandler->setData($data_list); $gridHandler->setTotalRowNum($data_count); $gridHandler->printLoadResponseText(); } } }