• ExtJS实战(9)疑难杂症分析


     

           在做项目的过程中,难免会遇到大大小小的问题(这是好事情,要不我们怎么进步呢?),那么,我们就把一些共性的值得探讨的问题拿出来,一起分析下:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

     

    1. JS没有错误,但却一直报未结束的字符串常量

    这个问题很有趣,后来发现是编码问题,在拷贝或写入中文前,写把JS文件的编码方式改为UTF-8

     

    2.组合分页中,HibernateUnsupported method: ResultSet.absolute

    我们知道这是结果集分页的方法,而JDBC的驱动是支持的。那么原因就只能是HibernatesetFirstResult()为一负值

     

    3.combo下拉列表框问题

    首先是它命名的值一直传不到服务器端,而其它控件都可以。后来才发现,它比较特别,它提交表单的名字是由hiddenName属性决定,而不是name属性。再就是在我们的应用中有大量的下拉列表框,房屋的几室几厅,是静态的下拉框;而区域和街道的下拉列表框,却是动态的下拉框(所谓的动态,也就是里面的数据是从服务器端得到的!),并且区域和街道还有联动效果。这里比较棘手的就是动态的下拉框,所有区域信息我们可以在一开始就从服务器端加载保存到本地,因为查询,添加,编辑里都要用到。而街道和区域有联动关系,这个也可以通过DWR实现。最麻烦的地方在于编辑的表单显示的时候,区域和街道都要有值,也就是说在利用DWR取得某条房屋信息时,我们还要取得这条房屋信息所在区域的所有街道信息,这样才能达到我们的效果!

     

    4.导入了汉化的JS文件,但时间控件依然没有变化。

    要注意JS的导入顺序,ext-lang-zh_CN.js一定要在ext-all.js之后导入。

     

    5.Criteria如何比较Date的大小,它能够使用统计函数吗?

    这两个小问题也很值得思考Criteria里是不能使用时间函数的.那么比较日期就要使用点技巧,譬如查找<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />2008-10-12日发布的租房信息。实际上就是查发布时间在2008-10-12 00:00:00 2008-10-12 23:59:59之间的房子。

    hibernate 2.x版本,Criteria是不支持投影查询和统计函数的。但3.x是支持的。譬如查找hid的总记录数:setProjection(Projections.count("hid"));

     

    6.有时候表格标题头显示不出来

    可以去掉文档类型声明试一下:<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

     css问题,导入的Js有顺序问题要注意!

     

    7.不联网时s.gif图标显示不出来

    因为它默认会到extjs的主页上寻找s.gif.我们可以修改ext-base.js BLANK_IMAGE_URL为本地图片路径

    也可以在应用中直接加一行:Ext.BLANK_IMAGE_URL = '/youProjectName/resources/images/default/s.gif'; // 替换默认的空白图片

     

    8.TabPanel不能添加右键菜单,也不能自动伸缩?

    要想解决这样的问题,我们需要引入TabCloseMenu.js,然后在我们的TabPanel里面加一个属性plugins: new Ext.ux.TabCloseMenu()

    9.表单提交url : 'house.do?param=add',在服务器端得不到参数param的值?

    注意将stanrdSubmit : true去掉,因为默认它采用get方式提交。而get方式会覆盖?后面带的参数!

     

    10.分页工具栏上如何可以定制每页显示的记录数?

    要想解决这样的问题,我们可以从ext的官方论坛上下载一个扩展的插件pager.js,引入它,然后在我们的PagingToolbar 里面加一个属性plugins : new Ext.ux.Andrie.pPageSize()

     

    11.查询表单和我们扩展的分页控件每页显示条数不一致怎么办?

    我们可以借助服务器端的session区域对象保存查询表单加上PagerToolbar的一些属性,譬如cursor属性指它的游标指针(当前记录数),pageSize属性是每页的条数,store.getTotalCount是总记录数,来达到要求!

          

           上面是我在做这个ExtJS应用时的遇到的一些小问题,和大家共同分享一下!如果大家还遇到其它细节问题,可以给我留言!

  • 相关阅读:
    如何获取下拉框中的值
    如何建立主从服务器
    hibernate
    Python基础(一)
    python2 与 python3 区别
    canvas简述(二)游戏实战思路
    canvas简述(一)
    C简述(二)
    C语言的基本简述
    Js基础(三) WebAPI
  • 原文地址:https://www.cnblogs.com/CharmingDang/p/9663758.html
Copyright © 2020-2023  润新知