增删改操作

来源:互联网 发布:下载软件的软件哪个好 编辑:程序博客网 时间:2024/06/07 05:39

(1)准备工作

     1)定义pojo

package sample.dataset;import java.util.Date;public class Product {private long id;private String name;private double price;private Date gmtCreate;private Date gmtModifieDate;<span style="white-space:pre"></span>....}
     2)定义DataType对应Pojo


       此处是在全局定义,在view中没有matchType


     3)定义DataSet使用新建的DataType



     4)定义DataGrid使用定义的DataSet


    5)定义一个ToolBar,下面添加一个ToolBarButton,用来修改


    6)定义一个Dialog,用来编辑数据


    7) 在下面Children节点添加一个AutoForm,用来生成编辑表单


        注意,这里使用dataSet是为了可以根据dataSet中的数据来生成表单中的控件

    8)添加2个按钮,分别用来确定和取消



    9)添加UpdateAction,用来更新操作


        添加一个UpdateItem


    10)后端代码

package sample.curd;import java.util.ArrayList;import java.util.List;import java.util.Map;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component;import sample.dataset.Product;import sample.dataset.ProductDAO;import com.bstek.dorado.annotation.DataProvider;import com.bstek.dorado.annotation.DataResolver;import com.bstek.dorado.data.entity.EntityState;import com.bstek.dorado.data.entity.EntityUtils;@Componentpublic class StdCURD {@Autowiredprivate ProductDAO productDAO;@DataProviderpublic List<Product> getAll(){return productDAO.getData();}@DataProviderpublic List<Product> getByParam(Map<String, Object> params){List<Product> resultList = new ArrayList<>();if (params!=null && params.size()>0 && params.get("productId")!=null) {long id = Long.valueOf((String)params.get("productId"));for (Product product:productDAO.getData()) {if (product.getId() == id) {resultList.add(product);return resultList;}}}return productDAO.getData();}@DataResolverpublic void save(List<Product> products){for (Product product : products) {if (EntityState.DELETED.equals(EntityUtils.getState(product))) {System.out.println("删除操作");}else if (EntityState.MODIFIED.equals(EntityUtils.getState(product))) {System.out.println("修改操作");}else if (EntityState.NEW.equals(EntityUtils.getState(product))) {System.out.println("新增操作");}}productDAO.save(products);}}


        最终页面如下:



(2)修改

        1)为编辑按钮绑定onClick事件

// @Bind #edit.onClick!function(dialogEdit){dialogEdit.show();}

        2)为取消按钮绑定onClick事件

// @Bind #cancleBtn.onClick!function(dsProducts,dialogEdit){view.get("#dsProducts.data:#").cancel();dialogEdit.hide();}
     意思是取消当前数据的操作,然后隐藏窗口

        3)为确定按钮绑定onClick事件

// @Bind #confirmBtn.onClick!function(updateAction,dialogEdit){updateAction.execute(function(){dialogEdit.hide();});}

(3)新增

        1)添加新增按钮

        2)为新增按钮添加onClick事件响应

// @Bind #addBtn.onClick!function(dsProducts,dialogEdit){dsProducts.getData().insert();dialogEdit.show();}

(4)删除(只能逻辑删除)

        1)添加删除按钮

        2)为删除按钮添加onClick事件响应

// @Bind #removeBtn.onClick!function(dsProducts){var entity = view.get("#dsProducts.data:#");alert(entity.get("id"));entity.remove();    if(entity){        dorado.MessageBox.confirm("确认要删除记录吗?", function(){        });    }}
       

0 0
原创粉丝点击