【问题标题】:JSP kendo grid EDIT /ADD Handle ERROR response from spring rest Kendo UI v2015.3.1111JSP kendo grid EDIT /ADD Handle ERROR response from spring rest Kendo UI v2015.3.1111
【发布时间】:2016-03-25 18:12:36
【问题描述】:

尝试 Kendo UI JSP 可编辑网格。网格正在解决一些问题。 (版本:剑道UI v2015.3.1111)

  1. 导出:即使使用 allPages="allPages",它也只能导出当前
    页面。
  2. 创建后,GRID 不会更新为具有用户 createDate 的服务器响应。与更新相同,网格未随更新日期更新 即使传递了更新的用户对象。
  3. 网格显示添加的用户,即使它在后端失败。如何处理创建/更新的错误响应并显示失败消息?

非常感谢任何帮助。

控制器创建部分:

    @RequestMapping(value = "/user/create", method = RequestMethod.POST)
    public @ResponseBody User create(@RequestBody Map<String, Object> model) {
        log.debug("create");
        User target = new User();

        target.setUserName((String)model.get("UserName"));
        target.setFirstName((String)model.get("firstName"));
        target.setLastName((String)model.get("lastName"));
        target.setOpenDate(getDateFromStr((String)model.get("openDate")));
        target.setEditDate(getDateFromStr((String)model.get("editDate")));
        User user = userDao.createUser(target);
        log.info("user"+user.getUserId()+user.getOpenDate());
        return user;
    }

JSP 部分:

<c:url value="/user/create" var="createUrl" />
<c:url value="/user/read" var="readUrl" />
<c:url value="/user/update" var="updateUrl" />
<c:url value="/user/destroy" var="destroyUrl" />
<c:url value="/user/saveexcel" var="saveExcelUrl" />
<c:url value="/user/savepdf" var="savePdfUrl" />

<kendo:grid name="grid" pageable="true" sortable="true" height="750px" filterable="true">
    <kendo:grid-scrollable/>
    <kendo:grid-pdf fileName="KendoUIGridExport.pdf" allPages="allPages"  proxyURL="${savePdfUrl}"/>
    <kendo:grid-excel fileName="KendoUIGridExport.xlsx"   allPages="allPages" proxyURL="${saveExcelUrl}" />
    <kendo:grid-editable mode="popup" confirmation="Are you sure you want to remove this item?"/>
    <kendo:grid-toolbar>
        <kendo:grid-toolbarItem name="create"/>
        <kendo:grid-toolbarItem name="excel"/>
        <kendo:grid-toolbarItem name="pdf"/>
    </kendo:grid-toolbar>
    <kendo:grid-columns>
        <kendo:grid-column title="User Name" field="userName"  width="120px"/>
        <kendo:grid-column title="First Name" field="firstName" width="120px" />
        <kendo:grid-column title="Last Name" field="lastName" width="120px" />
           <kendo:grid-column title="Open Date" field="openDate" width="120px" format="{0:MM/dd/yyyy}"  />              

          <kendo:grid-column title="Edit Date" field="editDate" width="120px" format="{0:MM/dd/yyyy}"  />              
        <kendo:grid-column title="&nbsp;" width="150px">
            <kendo:grid-column-command>
                <kendo:grid-column-commandItem name="edit" />
                <kendo:grid-column-commandItem name="destroy" />
            </kendo:grid-column-command>
        </kendo:grid-column>
    </kendo:grid-columns>
    <kendo:dataSource pageSize="10" serverPaging="false" serverSorting="false" serverFiltering="false" serverGrouping="false" >
        <kendo:dataSource-transport>
            <kendo:dataSource-transport-create url="${createUrl}" type="POST"  dataType="json" contentType="application/json"/>
            <kendo:dataSource-transport-read url="${readUrl}"  type="POST" dataType="json" contentType="application/json"/>
            <kendo:dataSource-transport-update url="${updateUrl}"  type="POST" dataType="json" contentType="application/json" />
            <kendo:dataSource-transport-destroy url="${destroyUrl}" type="POST" dataType="json" contentType="application/json" />
            <kendo:dataSource-transport-parameterMap>
                <script>
                    function parameterMap(options,type) {

                        return JSON.stringify(options);                         
                    }
                </script>
            </kendo:dataSource-transport-parameterMap>
        </kendo:dataSource-transport>
        <kendo:dataSource-schema>
            <kendo:dataSource-schema-model id="userId">
                <kendo:dataSource-schema-model-fields>
                    <kendo:dataSource-schema-model-field name="userName" type="string" >
                        <kendo:dataSource-schema-model-field-validation required="true" />
                    </kendo:dataSource-schema-model-field>
                    <kendo:dataSource-schema-model-field name="firstName" type="string">
                        <kendo:dataSource-schema-model-field-validation required="true" />
                    </kendo:dataSource-schema-model-field>
                    <kendo:dataSource-schema-model-field name="lastName" type="string">
                        <kendo:dataSource-schema-model-field-validation required="true" />
                    </kendo:dataSource-schema-model-field>
                        <kendo:dataSource-schema-model-field name="openDate" type="date" editable="false" />
                      <kendo:dataSource-schema-model-field name="editDate" type="date" editable="false"/>
                </kendo:dataSource-schema-model-fields>
            </kendo:dataSource-schema-model>
        </kendo:dataSource-schema>
    </kendo:dataSource>
</kendo:grid> 

【问题讨论】:

    标签: spring rest jsp kendo-ui kendo-grid


    【解决方案1】:

    自己解决了:对于 pdf,allPages="true" 有效。

    网格刷新:FOR requestEnd 事件

        function onRequestEnd(e) {
          if (e.type == "create") {
                e.sender.read();
          }
          else if (e.type == "update") {
                e.sender.read();
          }
       }        
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-20
      • 2022-01-06
      相关资源
      最近更新 更多