使用JSP Wrappers的Kendo Grid Mobile

时间:2016-01-21 01:19:26

标签: kendo-ui telerik kendo-grid telerik-grid jsp-tags

我无法使用Kendo JSP包装器来使用移动Adaptive Grid功能。我尽可能地减少了所有东西,并且它不适用于包装器。我可以使用Javascript完美地完成所有工作。以下工作完全正常:

<div id="grid"></div>
<script>
    var gridConfig = {
        columns: [
            {field: "name", title: "Name"},
            {field: "age", title: "Age"}
        ],
        filterable: true,
        columnMenu: true,
        mobile: true
    };

    $("#grid").kendoGrid(gridConfig);
</script>

当我在桌面浏览器中查看网格时,我的过滤器和列菜单会按预期显示。当我在手机上查看网格时,过滤器和列菜单将网格推到一边并显示为标准移动选择列表。如果我使用JSP包装器创建相同的网格,它不起作用:

<div id="grid">
    <kendo:grid name="grid" filterable="true" columnMenu="true" mobile="true" >
        <kendo:grid-columns>
            <kendo:grid-column title="Name" field="name" />
            <kendo:grid-column title="Age" field="age" />
        </kendo:grid-columns>
    </kendo:grid>
</div>

过滤器和列菜单显示在我的手机上,就像它们在桌面上一样,这使得它们无法使用,因为它们从查看区域滑落,当我尝试滚动到它们时消失。

我知道显而易见的问题是为什么要使用Wrappers,但我必须在整个应用程序中使用Freemarker。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

我必须自己修改最新版本(2016.1.112)的来源。如果其他人有类似问题,请调整com.kendoui.taglib.GridTag.java的setMobile方法。

public void setMobile(java.lang.Object value) {
    if (value instanceof String && (((String)value).equalsIgnoreCase("true") || ((String)value).equalsIgnoreCase("false"))) {
        setProperty("mobile", Boolean.valueOf((String)value));
    }
    else {
        setProperty("mobile", value);
    }
}

可能会更好,但它的功能性和我现在所需的功能。