Kendo UI网格自定义数据源URL

时间:2013-01-28 18:01:30

标签: java javascript jsp kendo-ui

我有一个名为clientCCBox的comboBox,我需要一个javascript来检索所选的选项值,它将是客户端ID,然后将它传递给kendo网格数据源读取属性,如下所示:

<kendo:dataSource-transport-read url="/read.html?*clientID*"/>

我一直在尝试使用这个js片段来恢复所选的值;文档写在那里可视地查看它是否实际检索到了值,但它什么也没显示。一旦我将clientID用于HTML,我将如何使用它?

<script> 
    function onSelect(e){
        var clientId = clientCCBox.value();   
        document.write(clienteId);
    }
</script>

如果我设法在查询字符串上传递clientID,控制器上的以下代码将返回一个列表并正确填充网格?

@RequestMapping(value = "/read.html*")
public @ResponseBody List<Workers> read(HttpServletRequest request) {
    return workerDAO.listWorker(Integer.parseInt(request.getQueryString()));
}

3 个答案:

答案 0 :(得分:1)

您可以使用parameterMap代码中的kendo:dataSource-transport属性定义其他参数。

示例:

<kendo:dataSource-transport parameterMap="additionalParameters">
    <kendo:dataSource-transport-read url="/ListBeer" type="GET" contentType="application/json"/>
</kendo:dataSource-transport>

additionalParameters的位置:

<script type="text/javascript">
    var theId = "xyz";

    function additionalParameters(data, type) {
        if (type === "read") {
            return "id=" + theId;
        }
        return data;
    }
</script>

在这里,我将从以下网址/ListBeer?id=xyz加载数据,其中xyztheId的值。

您还可以发送多个参数:

function additionalParameters(data, type) {
    if (type === "read") {
        return "id=" + data + "&param=" + JSON.stringify(data);
    }
    return "param= "+ JSON.stringify(data);
}

答案 1 :(得分:1)

使用下拉列表的read action参数上的“Data”事件为下拉列表指定动态javascript参数。请注意.Read方法的确切语法。通常你会看到语法.Read(“ActionName”,“ControllerName”)但我们想要其他重载版本的.Read:

.DataSource(data => data.Read(read => read.Action("GetDropDownValues", "Quote").Data("getCriteria")))

function getCriteria() {
    return {
        id: "put value here",
        anotherParameter: 55
    };
}

答案 2 :(得分:0)

您需要将客户端ID放在传输的数据字段中。

请查看以下链接。

http://docs.kendoui.com/api/framework/datasource#transportcreatedata-objectstringfunction

这是jquery的一部分而不是kendo ui