DataSource.md 6.62 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
# dataSource标签

数据源组件

```xml
<h:dataSource id="gridDataSource" batch="true" pageSize="10" serverPaging="true" error="requestError"> 
  <h:transport parameterMap="parameterMap"> 
    <h:read url="${base.contextPath}/sys/resource/query" type="POST" dataType="json"/>  
    <h:create url="${base.contextPath}/sys/resource/submit" type="POST" contentType="application/json"/>  
    <h:update url="${base.contextPath}/sys/resource/submit" type="POST" contentType="application/json"/>  
    <h:destroy url="${base.contextPath}/sys/resource/remove" type="POST" contentType="application/json"/> 
  </h:transport>  
  <h:schema data="rows" total="total" errors="schemaError"> 
    <h:model id="resourceId" editable="dsEditable"> 
      <h:fields> 
        <h:item name="loginRequire" defaultValue="Y" type="boolean" checkedValue="Y" uncheckedValue="N"/>  
        <h:item name="accessCheck" defaultValue="Y" type="boolean" checkedValue="Y" uncheckedValue="N"/>  
        <h:item name="type" defaultValue=""/>  
        <h:item name="url"> 
          <h:validation required="true"/> 
        </h:item>  
        <h:item name="name"> 
          <h:validation required="true"/> 
        </h:item> 
      </h:fields> 
    </h:model> 
  </h:schema> 
</h:dataSource>
```

### **主要属性**

33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| 属性名 | 类型 | 描述 |
| :--- | :--- | :--- |
| data | Array & String | 数据源 |
| autoSync | Boolean | 自动同步 |
| batch | Boolean | 批处理 |
| page | Integer | 每页显示大小 |
| pageSize | Integer | 提供每页显示的大小选择 |
| serverAggregates | Boolean | 为true数据源将聚合远程计算 |
| serverFiltering | Boolean | 为true将过滤远程数据 |
| serverGrouping | Boolean | 为true将远程数据分组 |
| serverPaging | Boolean | 为true将远程数据分页 |
| serverSorting | Boolean | 为true将远程数据排序 |
| type | String | 类型 |
| change | Function | 改变事件 |
| error | Function | 错误事件 |
| push | Function | 接受数据源推送式通知 |
| requestEnd | Function | 请求结束调用事件 |
| requestStart | Function | 请求开始时调用事件 |
| sync | Function | 自动同步改变的数据 |
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66

> **提示:** 属性用法请参考kendoui API文档 [http://docs.telerik.com/kendo-ui/api/javascript/data/datasource](http://docs.telerik.com/kendo-ui/api/javascript/data/datasource)

### **主要子节点**

* transport
* schema
* sort

### **transport**

服务端交互配置

#### **transport属性**

67 68 69 70
| 属性名 | 类型 | 描述 |
| :--- | :--- | :--- |
| parameterMap | Function | 将请求数据改为远程接受的数据格式 |
| push | Function | 数据初始化时设置为推送式通知 |
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88

```xml
<h:dataSource id="gridDataSource" > 
  <h:transport parameterMap="parameterMap"> 
    ...
  </h:transport>
</h:dataSource>
```

#### **transport子节点**

主要有以下几种节点类型

* read
* create
* update
* destroy

89 90 91 92 93 94 95 96
| 属性名 | 类型 | 描述 |
| :--- | :--- | :--- |
| cache | Boolean | 设置为true将数据缓存住 |
| contentType | String | 发送到服务器的内容的http的头 |
| data | Object \| Function | 发送到远程服务的附加参数 |
| dataType | String | 服务器期望的返回类型 |
| type | String | 请求类型 |
| url | String \| Function | 请求地址 |
97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112

```xml
  <h:transport parameterMap="parameterMap"> 
    <h:read url="${base.contextPath}/sys/resource/query" type="POST" dataType="json"/>  
    <h:create url="${base.contextPath}/sys/resource/submit" type="POST" contentType="application/json"/>  
    <h:update url="${base.contextPath}/sys/resource/submit" type="POST" contentType="application/json"/>  
    <h:destroy url="${base.contextPath}/sys/resource/remove" type="POST" contentType="application/json"/> 
  </h:transport>
```

### **schema**

定义datasource的数据结构

#### **schema属性**

113 114 115 116 117 118 119 120
| 属性名 | 类型 | 描述 |
| :--- | :--- | :--- |
| data | String \| Function | 包含数据项的服务器的相应字段 |
| errors | String \| Function | 包含服务器端的错误的数据 |
| groups | String \| Function | 包含组的服务器端数据 |
| parse | Function | 预处理解析服务器响应 |
| total | String \| Function | 数据项的总数 |
| type | String | 相应类型支持XML和JSON |
121 122 123 124 125 126 127 128 129 130 131 132 133

```xml
<h:dataSource id="gridDataSource" > 
  <h:schema data="rows" total="total" errors="schemaError">  
    ...
  </h:schema>
</h:dataSource>
```

#### **schema子节点**

* model

134 135 136 137
| 属性名 | 类型 | 描述 |
| :--- | :--- | :--- |
| id | String | 唯一标识 |
| editable | Function | 设置是否可编辑 |
138 139 140 141 142 143 144 145 146 147 148 149 150 151 152

```xml
<h:schema data="rows" total="total" errors="schemaError"> 
    <h:model id="resourceId" editable="dsEditable"> 
      <h:fields> 
         ... 
      </h:fields> 
    </h:model> 
  </h:schema>
```

#### **model子节点**

* field

153 154
| 属性名 | 类型 | 描述 |
| :--- | :--- | :--- |
155 156 157
| name | String | 名字 |
| defaultValue | Object | 默认值 |
| editable | Boolean | 是否可编辑 |
158
| nullable | Boolean |  |
159 160
| parse | Function | 设为推送式 |
| type | String | 类型 |
161
| from | String |  |
162
| checkedValue | String | 为true设为选中 |
163
| uncheckedValue | String | 为true设为没选中 |
164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186

```xml
<h:schema data="rows" total="total" errors="schemaError"> 
    <h:model id="resourceId" editable="dsEditable"> 
      <h:fields> 
        <h:item name="loginRequire" defaultValue="Y" type="boolean" checkedValue="Y" uncheckedValue="N"/>  
        <h:item name="accessCheck" defaultValue="Y" type="boolean" checkedValue="Y" uncheckedValue="N"/>  
        <h:item name="type" defaultValue=""/>  
        <h:item name="url"> 
          <h:validation required="true"/> 
        </h:item>  
        <h:item name="name"> 
          <h:validation required="true"/> 
        </h:item> 
      </h:fields> 
    </h:model> 
  </h:schema>
```

#### **field子节点**

* validation

187 188 189 190 191
| 属性名 | 类型 | 描述 |
| :--- | :--- | :--- |
| required | Boolean | 设为必填 |
| max | Integer | 设最大 |
| min | Integer | 设最小 |
192 193 194

### **sort**

195 196 197 198 199
| 属性名 | 类型 | 描述 |
| :--- | :--- | :--- |
| dir | String | 分为升序或者降序 |
| field | String | 字段的id |
| compare | function | 比较事件 |
200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220

```xml
    <h:dataSource id="gridDataSource" batch="true" pageSize="10" serverPaging="true" serverSorting="true" error="requestError">
      <h:transport parameterMap="parameterMap">
        ...
      </h:transport>
      <h:schema data="rows" total="total" errors="schemaError">
        <h:model id="resourceId" editable="dsEditable">
           <h:fields>
               ...
           </h:fields>
        </h:model>        
      </h:schema>
      <h:sort>
            <h:item field="url" dir="desc"/>
      </h:sort>
    </h:dataSource>
```