论坛首页 Web前端技术论坛

show下用Ext2.0做好的内容管理系统(多种Ext显示风格)

浏览 33386 次
精华帖 (1) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-02-23  
dengddq 不是record.data.Id 的问题 是render产生的代码找不到Test函数!
能不能看看你的那个修改的部分代码!
0 请登录后投票
   发表时间:2008-02-23  
应该是record.data.Id的问题,改为record.id,记得Id要改为小写。
下面的源代码可以参考一下
var Page={
	
	/**
	*分页查询页列表
	*@param siteId:所属站点ID
	**/
	store:'',//存储器
	
	queryPage:function(siteId){
		var sites=[];
		new Ajax({//查询站点列表
			url:'/viewSites.do',
			sync:false,
			success:function(ajax){//返回成功
				var responseArray =ajax.getJosnObject();
				if(responseArray.success==true){  
					sites = responseArray.data;	
					var temp=new Array();
					temp.push([-1,'所有站点']);
					var l=sites.length;			
					for(var i=0;i<l;i++){
						temp.push(sites.pop());
					}			 
					sites=temp;
	            }  
			}
		});
		var url;
		if(siteId!=null&&siteId>0)
			url='/queryPage.do?siteId='+siteId;
		else{
			url='/queryPage.do?';
			siteId='';
		}
	    var store = new Ext.data.Store({
	        proxy: new Ext.data.ScriptTagProxy({
	            url: url
	        }),

	        reader: new Ext.data.JsonReader({
	            root: 'results',
	            totalProperty: 'total',
	            id: 'id',
	            fields: ['name','url','siteName','adminName','createTime','remark','siteId'        
	            ]
	        }),
	            remoteSort: true       
	    });    
	    
	    
	    this.store = store;
	    store.Renderers = {
			operator:function(value, p, record){
				var content=content='<span id="modify-page-show-btn'+record.id+'" style="cursor:pointer;" onclick="Page.modifyPage('+record.id+');"><img  src="/images/b_edit.png" alt="修改页面"></span>';
				content +='&nbsp;&nbsp;<a ext:title="'+record.data.name+'的模板位列表" ext:method="Position.queryPosition(\''+record.id+'\',null)" href="/panelContent.jsp?id=position-list-grid'+record.id+'"><img  src="/images/position.gif" alt="'+record.data.name+'的模板位列表"></a>';
				content +='&nbsp;&nbsp;<a ext:title="'+record.data.name+'的内容列表" ext:method="var condition={pageId:'+record.id+'};AdvertManager.queryAdvertList(condition);" href="/panelContent.jsp?id=content-list-gridpage'+record.id+'"><img  src="/images/advert.gif" alt="'+record.data.name+'的内容列表"></a>';
				content +='&nbsp;&nbsp;<span style="cursor:pointer;" onclick="Page.deletePage('+record.id+');"><img  src="/images/delete.gif" alt="删除页面"></span>';
				return content;
			}
		}
	    var cm = new Ext.grid.ColumnModel([
		     {
	           id: 'topic',
	           header: "页面名称",
	           dataIndex: 'name',
	           width: 80,
	           align: 'left'
	        },{
	           header: "页面地址",
	           dataIndex: 'url',
	           width: 120,
	           align: 'left'           
	        },{
	           header: "站点名称",
	           dataIndex: 'siteName',
	           width: 80,
	           align: 'left'           
	        },{
	           header: "创建者",
	           dataIndex: 'adminName',
	           width: 80,
	           align: 'left'
	        },{
	           header: "创建时间",
	           dataIndex: 'createTime',
	           width: 100,
	           align: 'left'
	        },{
	           header: "页面简介",
	           dataIndex: 'remark',
	           width: 100,
	           align: 'left'
	        },{
			   header: "操作",
	           dataIndex: 'operator',
	           width: 80,
	           align: 'left',
			   renderer: store.Renderers.operator
			}]);
	
	    cm.defaultSortable = true;
	
	    var grid = new Ext.grid.GridPanel({
	        el:'page-list-grid'+siteId,
	        width:850,
	        height:500,
	        store: store,
	        cm: cm,
	        collapsible: true,
	        animCollapse: false,
	        stripeRows: true, 
	        loadMask: true, 
	        enableDragDrop:true,   
	        enableColumnMove:true,
	        viewConfig: {
	            forceFit:true
	        },
	        iconCls: 'icon-grid',
	        bbar: this.pagingToolbar=new Ext.PagingToolbar({
	            pageSize: 14,
	            store: store,
	            displayInfo: true,
	            beforePageText : "第",
				afterPageText : "页共 {0} 页", 
				displayMsg : "显示 {0} - {1},共 {2} 条",
				emptyMsg : '没有数据需要显示',
				items:[
				   '&nbsp;&nbsp;&nbsp;&nbsp;每页显示数',
				   new Ext.form.ComboBox({
				    store:new Ext.data.SimpleStore({
					    fields: ['abbr', 'state'],
					    data : [[10,10],[15,15],[20,20],[30,30],[40,40],[60,60],[80,80],[100,100]]
					}),
					width:50,
				    displayField:'state',
				    typeAhead: true,
				    mode: 'local',
					value:15,
				    triggerAction: 'all',
				    selectOnFocus:true,
					listeners:{
						change:{
							fn:function(box,newValue,oldValue){
								 Page.changePageSize(newValue);
							}
					    },
						select:{
							fn:function(combo, value){
								 Page.changePageSize(combo.getValue());  
							}
					    }  
					}
				})
				]            
	        }),
			tbar:[
			'查询:', new Ext.form.ComboBox({
	                    listClass:'x-combo-list-small',
	                    width:90,
	                    value:'-1',
						valueField :"value",
						displayField: "state",
			            hiddenName:'userState',
						name: 'userState',
						editable: false,
						emptyText:'所有',
						mode: 'local',					
						triggerAction:'all',
	                    store: new Ext.data.SimpleStore({ 
	                        fields: [ 'value','state'],
							data:sites
	                    }),
						listeners:{select:{fn:function(combo, value) {//过滤操作
							store.proxy.url="/queryPage.do?siteId="+combo.getValue();
							store.reload();
	                   }}}
	                }),'按页面地址',new Ext.form.TriggerField({
				width: 120,
				emptyText:'页面地址',
				id:'url',
				triggerClass:'x-form-search-trigger',
				onTriggerClick:function(){
					var url=Ext.get('url').dom.value;
					if(url!='页面地址'&&url.length>0){
						store.proxy.url='/queryPage.do?url='+encodeURI(url);
						store.reload();
					}else{
						Ext.Msg.alert('查询',"请输入要查询的地址!");
					}
				}
			}),
			'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:red;"><b>操作说明:</b></span>',
			'<img  src="/images/b_edit.png" alt="修改页面">修改&nbsp;&nbsp;','<img  src="/images/delete.gif" alt="删除页面">删除&nbsp;&nbsp;','<img  src="/images/position.gif" alt="查看页面的模板位列表">查看模版&nbsp;&nbsp;','<img  src="/images/advert.gif" alt="查看页面的模板位列表">查看内容'
			]
	    });
	    grid.render();
	    grid.getSelectionModel().selectFirstRow();
	
	    store.load({params:{start:0, limit:14}});
	
	    function toggleDetails(btn, pressed){
	        var view = grid.getView();
	        view.showPreview = pressed;
	        view.refresh();
	    }		
	},
	changePageSize:function(pageSize){
      if(pageSize!=null&&pageSize>0)
      this.pagingToolbar.pageSize=parseInt(pageSize);
      this.store.load({params:{start:0, limit:this.pagingToolbar.pageSize}});
	  this.store.reload();
	  },
	/**
	 * 修改页面信息
	 * @author kelvin
	 * @param {Object} record 传入的转换对象id
	 */
	modifyPage:function(id){
		var record=this.store.getById(id);//根据record的id返回record
		var sites=[];
		new Ajax({//查询站点列表
			url:'/viewSites.do',
			sync:false,
			success:function(ajax){//返回成功
				var responseArray =ajax.getJosnObject();
				if(responseArray.success==true){    
					sites=responseArray.data;//设置返回值					 
	            }  
			}
		});
		if(this.lastModifyPageWin!=null){
		    this.lastModifyPageWin.destroy();//删除上一个windows
		}
		var button = Ext.get('modify-page-show-btn'+id);
		var modfiyPageForm = new Ext.FormPanel({
			bodyStyle: 'padding:5px;',
			defaults: {
				width: 300
			},
			defaultType: 'textfield',
			items: [{
				fieldLabel: '页面ID',
				name: 'page.id',
				value: record.id,
				labelSeparator: ':',
				readOnly: true,
				allowBlank: false
			}, {
				fieldLabel: '页面名称',
				name: 'page.name',
				labelSeparator: ':',
				value: record.data.name,
				readOnly: false,
				allowBlank: false
			},{
				fieldLabel: '页面地址',
				name: 'page.url',
				labelSeparator: ':',
				value: record.data.url,
				vtype:'url',//验证类型为URL
				readOnly: false,
				allowBlank: false
			},{
			   xtype:'combo',		   
			   valueField :"value",
			   displayField: "name",
			   hiddenName:'page.siteId',
			   store: new Ext.data.SimpleStore({
			   	fields: [ 'value','name'],data: sites
			   }),
			   mode: 'local',
			   forceSelection: true,
			   allowBlank:false,
			   editable: false,
			   lastQuery:'',
			   triggerAction:'all',
			   fieldLabel: '页面所属站点',
			   //emptyText: "选择页面所属站点"
			   value:record.data.siteId
			},new Ext.form.TextArea({			
				fieldLabel: '页面简介',
				name:'page.remark',
				value: record.data.remark
			})
			],
		
		buttons: [{
			text: '确认修改',
			type:'submit',
            handler: function() {
                if(verifyPageForm.form.isValid()){//验证通过                 
                 verifyPageForm.form.doAction('submit',
                 {
		              url:'modifyPage.do',
		              method:'post',
		              params:'',
					  waitMsg:'正在提交修改信息,请稍等...',
		              success:function(form,action){	
                         Ext.Msg.alert('修改',"成功修改!");
						 win.hide();   	
						 Page.store.reload();
		              },
		              failure:function(form,action){
                          Ext.Msg.alert('修改',"修改失败!");
						  win.hide();   	
						  Page.store.reload();
		              }
                      });

            } else{//
               Ext.Msg.alert('',"请正确填写完整的信息!");	
            }
           }
		}, {
			text: '取消',
			handler: function(){
				win.hide();				
			}
		}]
	});
	var win = new Ext.Window({
		width: 500,
		height: 300,
		title:'修改页面信息'+'('+record.data.name+')',
		closeAction: 'hide',
		plain: true,
		layout: 'fit',
		closable: true,//是否可以关闭
		maximizable: true,//是否可以最大化
		collapsible: true,
		items: [ modifyPageForm ]
	});
	win.show(Ext.get('modify-page-show-btn'+id));//显示Window
	this.lastModifyPageWin=win;
	},
	/**
	 * 删除广告页面
	 * @author kelvin
	 * @param {Object} id 广告页面id
	 */
	deletePage:function(id){
		var back = Ext.MessageBox.confirm('确认','是否真的要删除页面吗',function(btn){
			if(btn=='yes'){
				Ext.Ajax.request({
					url:'deletePage.do',
					params:{
						pageId:id
					},
					success:function(response,options){
						if(response.responseText){
							Ext.Msg.alert('恭喜','此页面成功删除!');
							Page.store.reload();
						}else{
							Ext.Msg.alert('失败','此页面删除失败!');
							Page.store.reload();
						}
					}
				})
			}
		});
	}
};

    
0 请登录后投票
   发表时间:2008-02-23  
谢谢你奉献的源码!
0 请登录后投票
   发表时间:2008-02-24  
LZ能否提供一下一个演示,谢谢
0 请登录后投票
   发表时间:2008-02-24  
不错,怪不得Ext如此火!
0 请登录后投票
   发表时间:2008-02-25  
“http://wlr.easyjf.com/manage.html提供的源代码,登陆用户名和密码:amdin/admin 源代码是开源的,大家可以去下载来使用。 ”
用这个用户名和密码登录不上去啊!!能否把你的例子的源码打成包发布一下,多谢多谢!
0 请登录后投票
   发表时间:2008-02-25  
原来EXTJS看久了真的会审美疲劳。
0 请登录后投票
   发表时间:2008-02-25  
为什么不用jpg格式呢?
0 请登录后投票
   发表时间:2008-02-25  
登陆用户名和密码:amdin/admin

登录不上
0 请登录后投票
   发表时间:2008-02-25  
。。。。用户名和密码错误的也发上来。。

做要要厚道
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics