ext js 实现 查询 删除(ext js )

1、页面引入类

<script type="text/javascript"
src="${ctx}/dwr/interface/FxCustomerService.js"></script>
<script type="text/javascript"
src="${ctx}/dwr/interface/TempusCompanyManager.js"></script>
<script type="text/javascript"
src="${ctx}/js/usercenter/fx/fxCustomer.js"></script>


2.、页面js 代码

//设置为同步

 dwr.engine.setAsync(false); 
 //查询Form高度
 var queryFormWidth=45;
 //共用参数
        var params={
            gridParams:[{name:"id",type:"String",header:"ID",ishref:"true",width:40},//第一个暂定为主键 width为列宽,如果不设置则为80
            {name:"name",type:"String",header:"分销商名称",ishref:"false",width:40},
            {name:"code",type:"String",header:"分销商编号",ishref:"false",width:40},
            {name:"country",type:"String",header:"所属国家",ishref:"false",width:40},
            {name:"province",type:"String",header:"所在省",ishref:"false",width:40},
            {name:"city",type:"String",header:"所在市",ishref:"false",width:40},
            {name:"area",type:"String",header:"所属区域",ishref:"false",width:40},
            {name:"operationType",type:"String",header:"业务类型",ishref:"false",width:40},     
            {name:"contact",type:"String",header:"联系人",ishref:"false",width:40},
            {name:"mobile",type:"String",header:"联系人手机",ishref:"false",width:40},
            {name:"createName",type:"String",header:"客户经理",ishref:"false",width:40},
            {name:"subCompany.name",type:"String",header:"客户所属公司",ishref:"false",width:40}
            ],
            listOperater:{
                list:"FxCustomerService.dwrListPageByHQL",
                deleteRecord:"FxCustomerService.dwrDelete"
            },
            //"" 数据类型-- 字段名-- 比较方式
            queryCondition:[["","String","name","like","","","","","公司名称"],
                            ["","String","code","like","","","","","分销商编号"],
                            ["","String","operationType","like","","","","","业务类型"]
                ],
            //pagesize:20,//如果不设置,默认为15
            title:"角色列表",
            div:"list"

        };

3、引入的类的方法

                list:"FxCustomerService.dwrListPageByHQL",      

                     @RemoteMethod
public Page<FxCustomer> dwrListPageByHQL(DwrBackParams params) {
StringBuffer hql = new StringBuffer("from FxCustomer A where 1=1 ");
String pufilter = addPurviewStr();
hql.append(pufilter);
Page<FxCustomer> page = null;
try {
List<Condition> conditions = params.getConditions();
params.setOrderby(null);
List<PropertyFilter> filtes = DWRUtil.buildPropertyFilters(conditions);
for (PropertyFilter filter : filtes) {
if (filter.getMatchType().equals(MatchType.LIKE)) {
String proname = filter.getPropertyName();
hql.append(" and A." + proname + " like '%"+ filter.getValue() + "%'");
}
}

for (Condition condition : params.getConditions()) {
condition.setFirstValue(null);
condition.setSecondValue(null);
}

hql.append(" order by id desc");
page = super.dwrListPageHQL(params, hql.toString());

} catch (Exception ex) {
logger.error("错误", ex);
}
return page;
}

   public static List<PropertyFilter> buildPropertyFilters(
List<Condition> conditions) {
List<PropertyFilter> filters = new ArrayList<PropertyFilter>();
for (Condition condition : conditions) {
if("skip".equals(condition.getOperator()))//不作自动拼HQL查询--手工拼HQL
{
continue;
}
PropertyFilter filter = new PropertyFilter();
filter.setPropertyName(condition.getColumnName());
filter.setValue(condition.getFirstValue());
filter.setSecondValue(condition.getSecondValue());//日期段时第二个值
if ((StringUtils.isNotEmpty(condition.getFirstValue()))||(StringUtils.isNotEmpty(condition.getSecondValue()))) 
{
filter.setPropertyName(condition.getColumnName());
filter.setValue(condition.getFirstValue());
filter.setSecondValue(condition.getSecondValue());//日期段时第二个值


if ("=".equals(condition.getOperator())) {
filter.setMatchType(MatchType.EQ);
} else if ("like".equals(condition.getOperator())) {
filter.setMatchType(MatchType.LIKE);
} else if ("Date".equals(condition.getOperator())) {
filter.setMatchType(MatchType.DATE);
} else if ("DateBetween".equals(condition.getOperator())) {
filter.setMatchType(MatchType.DATEBETWEEN);
}else if ("LT".equals(condition.getOperator())) {
filter.setMatchType(MatchType.DATEBETWEEN);
}else if ("GT".equals(condition.getOperator())) {
filter.setMatchType(MatchType.DATEBETWEEN);
}else if ("LE".equals(condition.getOperator())) {
filter.setMatchType(MatchType.DATEBETWEEN);
}else if ("GE".equals(condition.getOperator())) {
filter.setMatchType(MatchType.DATEBETWEEN);
}else if ("Between".equals(condition.getOperator())) {
filter.setMatchType(MatchType.BETWEEN);
}
filter.setType(condition.getType());
filters.add(filter);
}
else
{
filter.setType(condition.getType());
if ("isNull".equals(condition.getOperator())) {
filter.setMatchType(MatchType.ISNULL);
filters.add(filter);
}else if ("isNotNull".equals(condition.getOperator())) {
filter.setMatchType(MatchType.ISNOTNULL);
filters.add(filter);
}

}


}
return filters;
}


          @RemoteMethod
@Transactional(readOnly = true)
public Page<T> dwrListPageHQL(DwrBackParams params, String hql) {
Page<T> page = new Page<T>();
try {
int pageSize = params.getLimit();
int currentPage = params.getStart() / pageSize + 1;
int queryflag = params.getQueryflag();
String orderby = params.getOrderby();
String orderDirection = params.getOrderdirection();
if (queryflag == 1) {
List<Condition> conditions = params.getConditions();
List<PropertyFilter> filters = DWRUtil
.buildPropertyFilters(conditions);
Page<T> argPage = new Page<T>(currentPage, pageSize);
if (orderby != null) {
argPage.setOrderBy(orderby);// 设置排序参数
argPage.setOrder(orderDirection);// 设置排序方向 降序或者降序
}
StringBuffer sbHQL = new StringBuffer(hql);
List<Object> values = new ArrayList<Object>();
getEntityDao().buildFilterConditions(filters, sbHQL, values);
page = getEntityDao().findPage(sbHQL.toString(), values.toArray(),
argPage);
}
} catch (Exception e) {
logger.error("dwrListPageHQL列表查询出现异常",e);

return page;
}


        protected void buildFilterConditions(final List<PropertyFilter> filters,StringBuffer sbHQL,List<Object> values)
{
for (PropertyFilter filter : filters) {
if (MatchType.DATEBETWEEN.equals(filter.getMatchType())) {
SimpleDateFormat sdf = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
java.util.Date startdate = null;
java.util.Date enddate = null;
try {
if(filter.getValue() != null && !"".equals(filter.getValue())){
startdate = sdf.parse((String) filter.getValue()
+ " 00:00:00");
}
if(filter.getSecondValue() != null && !"".equals(filter.getSecondValue())){
enddate = sdf.parse((String) filter.getSecondValue()
+ " 23:59:59");
}
} catch (ParseException e) {
                        logger.error("日期转换错误",e);
}
HqlUtils.append(sbHQL, values,
filter.getPropertyName(), startdate, ">=");
HqlUtils.append(sbHQL, values,
filter.getPropertyName(), enddate, "<=");
} else if (MatchType.BETWEEN.equals(filter.getMatchType())) {
HqlUtils.append(sbHQL, values,
filter.getPropertyName(), filter.getValue(),
">=");
HqlUtils.append(sbHQL, values,
filter.getPropertyName(), filter
.getSecondValue(), "<=");
} else {
if("long".equals(filter.getType()))
{
filter.setValue(Long.parseLong(filter.getValue().toString()));
}
                    if("int".equals(filter.getType()))
                    {
                        filter.setValue(Integer.parseInt(filter.getValue().toString()));
                    }
HqlUtils.append(sbHQL, values,filter.getPropertyName(), filter.getValue(),MatchType.LIKE.equals(filter.getMatchType()));
}
}
}

              deleteRecord:"FxCustomerService.dwrDelete"



/**
* 用于DWR根据ID删除实体
*/
@RemoteMethod
public String dwrDelete(Long[] idArray) {
String msg = "";
for (int i = 0; i < idArray.length; i++) {
getEntityDao().delete(idArray[i]);
}
msg = "删除成功!";
return msg;
}

               public void delete(final PK id) {
Assert.notNull(id, "id不能为空");
delete(get(id));
logger.debug("delete entity {},id is {}", entityClass.getSimpleName(),
id);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值