Blog信息 |
blog名称: 日志总数:1304 评论数量:2242 留言数量:5 访问次数:7589149 建立时间:2006年5月29日 |

| |
[DWR(Ajax)]DWR 2.0 入门扩充 软件技术, 电脑与网络
lhwork 发表于 2006/7/3 11:39:18 |
之前必须看过一篇关于dwr的入门文章,这里不讲配置;那篇没怎么讲大部分javascript的api,这里详细讲javascript的操作.java 类(很简单,理解就行了)---------------------------------------------------------------------public Collection getAllPeople(){ return people.values();}public Person getPerson(int id){ return (Person) people.get(new Integer(id));}public boolean deletePerson(Person toDelete){ return people.remove(new Integer(toDelete.getId())) != null;}public void addPerson(Person toAdd){ if (toAdd.getId() == -1) { toAdd.setId(nextId++); } people.put(new Integer(toAdd.getId()), toAdd);}private static int nextId = 10;private Map people = new HashMap();---------------------------------------------------------------------脚本部分:<script type='text/javascript' src='/dwr-demo/dwr/interface/Demo.js'> </script> //在xml描述符里面定义的<script type='text/javascript' src='/dwr-demo/dwr/engine.js'> </script> // 系统的<script type='text/javascript' src='/dwr-demo/dwr/util.js'> </script> //系统的<script type='text/javascript'>//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<var getName = function(person) { return person.name };var getDoB = function(person) { return person.address }; // if we return to using dates, add .toLocaleDateString()var getSalary = function(person) { return person.salary };var getEdit = function(person) { return '<input type="button" value="Edit" onclick="readPerson('+person.id+')"/>';};var getDelete = function(person) { return '<input type="button" value="Delete" onclick="deletePerson('+person.id+', \''+person.name+'\')"/>';};//其实这里是这个意思://function getName(person){ // return person.name;//}//也可以写成这样://var cellFuncs = [// function(data) { return data; },// function(data) { return data.toUpperCase(); },// function(data) {// return "<input type='button' value='Test' onclick='alert(\"Hi\");'/>";// },// function(data) { return count++; }//];//输出的时候按照顺序输出;//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>//更新列表的状态;function update() { Demo.getAllPeople(fillTable); 调用fillTable方法,把返回值传给fillTable(returnData)填充数据;}//填充数据;function fillTable(people) { DWRUtil.removeAllRows("peoplebody");//提供的方法,删除tbody对象里面的所有对象; //addRows 在官方文档里面有写具体介绍,大概说一下: //for each member in array // for each function in cellfuncs // create cell from cellfunc(array[i]) //看上面的代码就知道了,他把他当作array处理,每个元素还是个array,里面都是函数,通过在第三个参数里面的名字来调用依次调用. //所以注意第三个参数的顺序; DWRUtil.addRows("peoplebody", people, [ getName, getDoB, getSalary, getEdit, getDelete ]) //最后循环的打印在peoplebody里面;}//读function readPerson(id) { Demo.getPerson(fillForm, id);//读完之后调用fillForm方法,就事把参数传过去.}//删function deletePerson(personid, name) { if (confirm("Are you sure you want to delete " + name + "?")) { Demo.deletePerson(update, { id:personid });//调用删除方法; }}//写function writePerson() { DWRUtil.getValues(person);//通过这个方法,将html中id=person对象值打包成一个数组对象放到person里面; Demo.addPerson(update, person); //调用方法传person对象,完成后调用update方法;}//person 对象var person = { id:-1, name:null, address:null, salary:null };//清空;function clearPerson() { person = { id:-1, name:null, address:null, salary:null }; DWRUtil.setValues(person); //就是赋值;}//填充对象;和上面一样;function fillForm(aperson) { person = aperson; DWRUtil.setValues(person);}//仿照gmail每次都在右上角加一个 loading 的图标,表示加载中,你也可以该这个,在官方网页上有写好的东西;//http://getahead.ltd.uk/dwr/browser/util/useloadingmessagefunction init() { DWRUtil.useLoadingMessage(); update();}//系统每次都自动调用该方法;callOnLoad(init);</script>-------------------------------------------------------------------HTML : 列表-显示数据的地方;<table border="1" class="rowed"><thead><tr><th>Name</th><th>Address</th><th>Salary</th><th colspan="2">Actions</th></tr></thead> <tbody id="peoplebody"></tbody></table><td>ID:</td><td><span id="id">-1</span></td></tr><tr>输入框-添加修改数据的地方;<td>Name:</td><td><input id="name" type="text"/></td></tr><tr><td>Salary:</td><td><input id="salary" type="text"/></td></tr><tr><td>Address:</td><td><input type="text" id="address"/></td></tr>操作<td colspan="2" align="right"><input type="button" value="Save" onclick="writePerson()"/><input type="button" value="Clear" onclick="clearPerson()"/></td> 好了,总算入门了,之后就好好他提供的api吧.不过感觉这个有点违背mvc的框架;(
|
|
回复:DWR 2.0 入门扩充 软件技术, 电脑与网络
dsds(游客)发表评论于2008/3/1 15:05:41 |
之前必须看过一篇关于dwr的入门文章,这里不讲配置;那篇没怎么讲大部分javascript的api,这里详细讲javascript的操作.java 类(很简单,理解就行了)---------------------------------------------------------------------public Collection getAllPeople(){return people.values();}public Person getPerson(int id){return (Person) people.get(new Integer(id));}public boolean deletePerson(Person toDelete){return people.remove(new Integer(toDelete.getId())) != null;}public void addPerson(Person toAdd){if (toAdd.getId() == -1){toAdd.setId(nextId++);}people.put(new Integer(toAdd.getId()), toAdd);}private static int nextId = 10;private Map people = new HashMap();---------------------------------------------------------------------脚本部分:<script type='text/javascript' src='/dwr-demo/dwr/interface/Demo.js'> </script> //在xml描述符里面定义的<script type='text/javascript' src='/dwr-demo/dwr/engine.js'> </script> // 系统的<script type='text/javascript' src='/dwr-demo/dwr/util.js'> </script> //系统的<script type='text/javascript'>//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<var getName = function(person) { return person.name };var getDoB = function(person) { return person.address }; // if we return to using dates, add .toLocaleDateString()var getSalary = function(person) { return person.salary };var getEdit = function(person) {return '<input type="button" value="Edit" onclick="readPerson('+person.id+')"/>';};var getDelete = function(person) {return '<input type="button" value="Delete" onclick="deletePerson('+person.id+', \''+person.name+'\')"/>';};//其实这里是这个意思://function getName(person){ // return person.name;//}//也可以写成这样://var cellFuncs = [// function(data) { return data; },// function(data) { return data.toUpperCase(); },// function(data) {// return "<input type='button' value='Test' onclick='alert(\"Hi\");'/>";// },// function(data) { return count++; }//];//输出的时候按照顺序输出;//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>//更新列表的状态;function update() {Demo.getAllPeople(fillTable); 调用fillTable方法,把返回值传给fillTable(returnData)填充数据;}//填充数据;function fillTable(people) {DWRUtil.removeAllRows("peoplebody");//提供的方法,删除tbody对象里面的所有对象;//addRows 在官方文档里面有写具体介绍,大概说一下://for each member in array// for each function in cellfuncs// create cell from cellfunc(array[i])//看上面的代码就知道了,他把他当作array处理,每个元素还是个array,里面都是函数,通过在第三个参数里面的名字来调用依次调用.//所以注意第三个参数的顺序;DWRUtil.addRows("peoplebody", people, [ getName, getDoB, getSalary, getEdit, getDelete ])//最后循环的打印在peoplebody里面;}//读function readPerson(id) {Demo.getPerson(fillForm, id);//读完之后调用fillForm方法,就事把参数传过去.}//删function deletePerson(personid, name) {if (confirm("Are you sure you want to delete " + name + "?")) {Demo.deletePerson(update, { id:personid });//调用删除方法;}}//写function writePerson() {DWRUtil.getValues(person);//通过这个方法,将html中id=person对象值打包成一个数组对象放到person里面;Demo.addPerson(update, person); //调用方法传person对象,完成后调用update方法;}//person 对象var person = { id:-1, name:null, address:null, salary:null };//清空;function clearPerson() {person = { id:-1, name:null, address:null, salary:null };DWRUtil.setValues(person); //就是赋值;}//填充对象;和上面一样;function fillForm(aperson) {person = aperson;DWRUtil.setValues(person);}//仿照gmail每次都在右上角加一个 loading 的图标,表示加载中,你也可以该这个,在官方网页上有写好的东西;//http://getahead.ltd.uk/dwr/browser/util/useloadingmessagefunction init() {DWRUtil.useLoadingMessage();update();}//系统每次都自动调用该方法;callOnLoad(init);</script>-------------------------------------------------------------------HTML : 列表-显示数据的地方;<table border="1" class="rowed"><thead><tr><th>Name</th><th>Address</th><th>Salary</th><th colspan="2">Actions</th></tr></thead><tbody id="peoplebody"></tbody></table><td>ID:</td><td><span id="id">-1</span></td></tr><tr>输入框-添加修改数据的地方;<td>Name:</td><td><input id="name" type="text"/></td></tr><tr><td>Salary:</td><td><input id="salary" type="text"/></td></tr><tr><td>Address:</td><td><input type="text" id="address"/></td></tr>操作<td colspan="2" align="right"><input type="button" value="Save" onclick="writePerson()"/><input type="button" value="Clear" onclick="clearPerson()"/></td>好了,总算入门了,之后就好好他提供的api吧.不过感觉这个有点违背mvc的框架;( |
|
回复:DWR 2.0 入门扩充 软件技术, 电脑与网络
AAA(游客)发表评论于2007/5/10 17:56:15 |
callOnLoad(init); --这行总提示缺少对象。 |
|
» 1 »
|