extjs grid

10191 단어 데이터 구조ext

<html>
<head>
<meta charset="UTF-8" />
<title>grid</title>
<link rel="stylesheet" type="text/css" href="../extjs/resources/css/ext-all.css" />
<script type="text/javascript" src="../extjs/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="../extjs/ext-all.js"></script>
<script type="text/javascript" src="../extjs/src/locale/ext-lang-zh_CN.js"></script>
</head>
<body>
<div id="a"></div>
<script>
//     
var sm = new Ext.grid.CheckboxSelectionModel({
  singleSelect: false
  //singleSelect   true,    grid      ,   false
});

//    ----1 :    
var cm = new Ext.grid.ColumnModel([
  new Ext.grid.RowNumberer(),// Ext      ,      
  sm,
  {
    id : "title",
    header : "  ", //      
    width : 150,
	sortable : true, //  
    dataIndex : "title_cm",//      name   
    tooltip : "    ",
    renderer : function(v) { //        
      return "<u>" + v + "</u>";// renderer  ,   jsonObj         
    }
  }, {
    header : "  ",
    width : 50,
    dataIndex : "author"
  }, {
    header : "    ",
    width : 150,
    format : "Y-m-d",
    dataIndex : "createdTime",
    renderer : Ext.util.Format.dateRenderer("Y-m-d")
  }, {
    header : "  ",
    width : 100,
    dataIndex : "rowId",
    menuDisabled : true,//          ,false   
    renderer : function(v) {
      var modify = "<a href='modify?newsId=" + v + "'>  </a>";
      var remove = "<a href='delete?newsId=" + v + "'>  </a>";
      return "<span align='center'>" + modify + "&nbsp;" + remove
      + "</span>";
    }
  }]);

// Dummy  
var data = {"totalProperty":5,"root":[{
  rowId : 5,
  title : "       ",
  author : "  ",
  createdTime : Date.parseDate("2010-04-26", "Y-m-d")
}, {
  rowId : 2,
  title : "  ",
  author : "   ",
  createdTime : Date.parseDate("2010-04-26", "Y-m-d")
}, {
  rowId : 3,
  title : "        ",
  author : "   ",
  createdTime : Date.parseDate("2010-04-26", "Y-m-d")
}, {
  rowId : 1,
  title : "     ",
  author : "     ",
  createdTime : Date.parseDate("2010-04-26", "Y-m-d")
}, {
  rowId : 4,
  title : "   ",
  author : "  ",
  createdTime : Date.parseDate("2010-04-26", "Y-m-d")
}]};

//   ,  Dummy  
var proxy = new Ext.data.MemoryProxy(data);

// Record       ---2:     
var News = Ext.data.Record.create([{
  name : "title_cm", // cm dataIndex  
  type : "string",
  mapping : "title"// data   title  
},
//      name     data        ,     ,            
{
  name : "author",
  type : "string",
  mapping : "author"
}, {
  name : "createdTime",
  type : "string",
  mapping : "createdTime"
}, {
  name : "rowId",
  mapping : "rowId"
}]);

// Reader
var reader = new Ext.data.JsonReader({totalProperty:"totalProperty",root:"root"}, News);

// Store ---3:    
var store = new Ext.data.Store({
  proxy : proxy,
  reader : reader
});
store.load({params:{start:0,limit:2}});

Ext.onReady(function() {

  var grid = new Ext.grid.GridPanel({
    title : "    ",
    width : 500,
    autoHeight : true,
    cm : cm,
    sm : sm,
    //    ColumnModel  sm   grid    ,     :
    //1.      ;
    //2.        CheckBox      
    store : store,
    renderTo : "a",
    autoExpandColumn : "title",
    tbar : [{
      text : "     ",
      icon : "../extjs/resources/images/default/dd/drop-no.gif",
      cls : "x-btn-text-icon",
      handler : function() {
        var rsm = grid.getSelectionModel();
        var view = grid.getView();
        var store = grid.getStore();
        for (var i = view.getRows().length - 1; i >= 0; i--) {
          if (rsm.isSelected(i)) {
            store.remove(store.getAt(i));
          }
        }
        view.refresh();
      }
    }, {
      text : "     ",
      icon : "../extjs/resources/images/default/dd/drop-no.gif",
      cls : "x-btn-text-icon",
      handler : function() {
        Ext.Msg.confirm("  ", "          ?", function (btn) {
          if (btn == "yes") {
            var store = grid.getStore();
            store.removeAll();
            grid.getView().refresh();
          }
        })
      }
    }, '-', { //'-'       | '->'    
      text : "    ",
      icon : "../extjs/resources/images/default/dd/drop-add.gif",
      cls : "x-btn-text-icon",
      handler : function() {
        Ext.Msg.prompt("  ", "  :", function (btn, txt) {
          var newItem = {
            title : txt,
            author : "Kong",
            createdTime : new Date()
          }
          var news = new News(newItem);
          grid.getStore().insert(0, news); //     、grid.getStore().add(news);     
          grid.getView().refresh();//  
        })
      }
    }, {
      text : "       ",
      icon : "../extjs/resources/images/default/dd/drop-yes.gif",
      cls : "x-btn-text-icon",
      handler : function() {
        var rsm = grid.getSelectionModel();// 
        for (var i = 0; i < grid.getView().getRows().length; i++) {
          if (rsm.isSelected(i)) {
            var record = grid.getStore().getAt(i);
            var title = record.get("title_cm");
            var author = record.get("author");
            var createdTime = record.get("createdTime");
            var rowId = record.get("rowId");
            Ext.Msg.alert("Info", title + "<br/>" + author + "<br/>" + createdTime + "<br/>" + rowId);
          }
        }
      }
    }, {
      text : "  ",
      icon : "../extjs/resources/images/default/dd/drop-yes.gif",
      cls : "x-btn-text-icon",
      handler : function() {
        var rsm = grid.getSelectionModel();
		if(rsm.getCount()==1){
		   var r = rsm.getSelected();
		   
		   //alert(r.get("title_cm"));
		   // for (var i = 0; i < grid.getView().getRows().length; i++) {
           // if (rsm.isSelected(i)) {
		   //   alert(grid.getStore().getAt(i).get("title_cm"));
		   //}
		   //} 
		}else{
		   Ext.Msg.alert("  ","         !");
		}
     }
    }],
	bbar:new Ext.PagingToolbar({ 
	   pageSize:2, 
	   store:store,
	   displayInfo:true, 
	   displayMsg:'   {0}   {1},   {2} ', 
	   emptyMsg:'    ' 
  }), 
    buttonAlign : "right",
    buttons : [{
      text : "   ",
      handler : function() {
        var rowSelectModel = grid.getSelectionModel();
        //       
        rowSelectModel.selectFirstRow();
      }
    }, {
      text : "   ",
      handler : function() {
        var rsm = grid.getSelectionModel();
        if (!rsm.hasPrevious()) {
          Ext.Msg.alert("  ", "      ");
        } else {
          rsm.selectPrevious();
        }
      }
    }, {
      text : "   ",
      handler : function() {
        var rsm = grid.getSelectionModel();
        if (rsm.hasNext()) {
          rsm.selectNext();
        } else {
          Ext.Msg.alert("  ", "       ");
        }
      }
    }, {
      text : "  ",
      handler : function() {
        var rsm = grid.getSelectionModel();
        rsm.selectAll();
      }
    }, {
      text : "   ",
      handler : function() {
        var rsm = grid.getSelectionModel();
        rsm.deselectRange(0, grid.getView().getRows().length - 1);
      //grid.getView().getRows().length           
      //  :Ext.grid.RowSelectionModel getCount            
      }
    }, {
      text : "  ",
      handler : function() {
        var rsm = grid.getSelectionModel();
        for (var i = grid.getView().getRows().length - 1; i >= 0; i--) {
          if (rsm.isSelected(i)) {
            rsm.deselectRow(i);
          } else {
            rsm.selectRow(i, true);
          //selectRows       ,                 
          //     rsm.selectRow(i),          
          }
        }
      }
    }]
  });
   
   //store.load({params:{start:0, limit:3}});
});

</script>


</body>
</html>

좋은 웹페이지 즐겨찾기