用ExtJs+Linq+Wcf打造简单grid

    本文将着重讲述如何用wcf+extjs+linq打造一个支持排序和列刷选的grid。闲话少叙 ,下面是操作步骤和实现效果图

第一步:在vs2008中创建一个支持.NET framework 3.5的网站,此处之所以强调支持.NET framework 3.5是为了使用linq

第二步:将运行时需要的Extjs的资源文件拷贝到项目目录,具体可见示例项目

第三步:假设在本机sql2005中存在数据库sharelist,里面有一个数据表stocks,效果如下:

数据库文件sharelist.mdf在示例项目db文件夹中。如果需要测试,可以将其附加到自己的sql2005数据库服务器中。

在网站项目中创建一个Linq To Sql类:DataClasses.dbml,方法如下如所示:

点击添加之后,出现下面的Linq To Sql向导

ExtJs与Wcf交互生成grid的脚本代码 

 

// example of custom renderer function 

function pctChange(val)

if(val > 0)

return '' + val + '%
'

}
else if(val < 0)

return '' + val + '%
'

}
 

return val; 

}
 

var proxy=new Ext.data.HttpProxy( {url:'ArrayGridService.svc/GetStocks'}); 

 

// create the data store 

var store = new Ext.data.SimpleStore(

fields: [ 

{name: 'company'}

{name: 'price', type: 'float'}

{name: 'change', type: 'float'}

{name: 'pctChange', type: 'float'}

{name: 'lastChange', type: 'date', dateFormat: 'n/j h:ia'} 



}
); 

 

 

//定义reader 

var reader=new Ext.data.JsonReader( 



}
,[ 

{name: 'company'}

{name: 'price'}

{name: 'change'}

{name: 'pctChange',mapping:'changepercent'}

{name: 'lastChange',mapping:'lastupdated'} 





//构建Store 

var store=new Ext.data.Store( 

proxy:proxy, 

reader:reader 

}
); 

//载入 

store.load(); 

 

 

// create the Grid 

var grid = new Ext.grid.GridPanel(

store: store, 

columns: [ 

{id:'company',header: "公司", width: 160, sortable: true, dataIndex: 'company'}

{header: "单价", width: 75, sortable: true, renderer: 'usMoney', dataIndex: 'price'}

{header: "变动", width: 75, sortable: true, renderer: change, dataIndex: 'change'}

{header: "变动百分比", width: 75, sortable: true, renderer: pctChange, dataIndex: 'pctChange'}

{header: "最后更新", width: 100, sortable: true, renderer: Ext.util.Format.dateRenderer('Y年m月d日'), dataIndex: 'lastChange'} 

], 

stripeRows: 
true

autoExpandColumn: 
'company'

height:
350

width:
600

title:
'股市行情'

viewConfig: 



columnsText:
''

sortAscText:
'升序'

sortDescText:
'降序' 

}
 

}
); 

 

grid.render(
'grid-example'); 

 

grid.getSelectionModel().selectFirstRow(); 

}
); 

NET技术用ExtJs+Linq+Wcf打造简单grid,转载需保留来源!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。