我有一个名为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()));
}
答案 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
加载数据,其中xyz
是theId
的值。
您还可以发送多个参数:
function additionalParameters(data, type) {
if (type === "read") {
return "id=" + data + "¶m=" + 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