示例#1
0
}

//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();
?>

示例#2
0
 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();
         }
     }
 }