2013-03-20 125 views
1

在发布之前,我在网上搜索了相关的问题,但找不到任何相关的帮助。CodeIgniter与Kendoui网格

我在CodeIgniter下的Web应用程序上工作。 其中我使用KendoUI。 KendoUi已安装。

问题是我想使用KendoUi网格,但该网格遵循json格式和其他人喜欢xml。

但问题是,我在kendoUi网站上通过网络看到的文档,根据他们我需要另一个数据源文件。其中应该包括数据库的回声查询,它将用作网格的数据源。

但我想知道是否有可能在codeigniter中,如果kendoui网格直接从数据库加载数据而不是在ohter php文件中回显数据,然后将其放在网格上。

当且仅当它是不可能的,那么我应该遵循什么方法codeigniter mvc模式来实现网格?我应该用另一个目录中的数据名称作为目录吗?或我该怎么办..

真的需要你的所有指导。

KendoUi和codeigniter的新手。

回答

4

Kendo UI在客户端运行。你的数据是服务器端的。将数据存入网格的唯一方法是通过服务器端函数传递数据。

在你的情况下,使用CodeIgniter,这是非常简单的。您的控制器需要提供包含网格和所需JavaScript的页面。数据源transportread部分应该指向提供数据的URL。

在你的情况下,该URL将是一个CodeIgniter方法。假设您希望网格显示员工信息,read网址将指向employees\gridread(或其他)。

employees\gridread方法将调用employees_model来克服员工记录。然后它以JSON格式返回员工数据。控制器可能看起来像:

public function gridread() 
    { 
     $limit = $this->input->post('take',TRUE); 
     $offset = $this->input->post('skip',TRUE); 
     $sort = $this->input->post('sort',TRUE); 
     $filter = $this->input->post('filter',TRUE); 

     $data = $this->employees_model->GridRead($limit, $offset,$sort,$filter); 

     if ($data): 
      header("Content-type: application/json"); 
      echo json_encode($data); 
     else: 
      // send server error 
      header("HTTP/1.1 500 Internal Server Error"); 
      echo "Failed to read data!"; 
     endif; 
    } 

您需要在模型中的一个函数,处理$limit, $offset, $sort, $filter值来返回请求的数据。

编辑:实际上,有一个更容易挂钩的CodeIgniter(或任何PHP框架)与剑道电网的工作方式,那就是用剑道的DataSourceResult.php,你可以通过查看网格演示和切换源PHP找到。

它处理Ajax请求,包括任何过滤,排序和分页,并以Grid需要的格式返回数据。

我已经稍微编辑了它,以便它可以使用CI的$this->load->library方法加载,并且它从配置文件中获取数据库设置。