论坛首页 Web前端技术论坛

两个列表无刷新页面数据交互

浏览 4863 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-09-05  
两个列表,从列表1中选择记录,在列表2中显示选择的记录,并且显示的记录是经过后台数据库处理的记录,记录和多选
   发表时间:2007-09-05  
这个问题 很有意思,我考虑了一段时间,还没有思路,请大家发表看法

显示选中记录的第二个列表 需要不刷新 ,显示多条记录,记录需要一条一条的增加
0 请登录后投票
   发表时间:2007-09-05  
呵呵 这个功能 ecgrid会支持
但是由于ecgrid我只能利用业余时间开发
所以遥遥无期
但是从技术角度来讲,如果只是要实现这个功能没什么难度,难的是如何很好的实现 ,呵呵(此句实属废话)

首先你的表格要支持 json对象.
从表格1中选中数据后 组成json,传给后台
后台持久化,然后发送个持久化成功的信息
前台接收后,向另一个表格里传送json对象
另一个表格接收到后,刷新本身.

0 请登录后投票
   发表时间:2007-09-05  
fins 写道
呵呵 这个功能 ecgrid会支持
但是由于ecgrid我只能利用业余时间开发
所以遥遥无期
但是从技术角度来讲,如果只是要实现这个功能没什么难度,难的是如何很好的实现 ,呵呵(此句实属废话)

首先你的表格要支持 json对象.
从表格1中选中数据后 组成json,传给后台
后台持久化,然后发送个持久化成功的信息
前台接收后,向另一个表格里传送json对象
另一个表格接收到后,刷新本身.

感谢  fins,你的观点应该是我寻找的方向了,

不过我以前没有做过对于 json的开发,我以前用DELPHI实现过这个功能,现在改版为 Web形式,一时不知如何进行,希望朋友给与更多的帮助,不胜感谢!
0 请登录后投票
   发表时间:2007-09-06  
怎么这么多人浏览,没有回复者呢?
或者大家对于Ajax 比较熟悉的,也可以和我交流一下,不胜感激,
MSN:roundlight@hotmail.com
谢谢
0 请登录后投票
   发表时间:2007-09-06  
我感觉你这就是级联菜单,我写过一个autoselect.js,可以实现这个,而且很简单
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<script src='scripts/prototype.js'></script>
	<script src='scripts/builder.js'></script>
	<script>
		var AutoSelected = Class.create();
	    AutoSelected.prototype = {
	        initialize : function(url,src,des){
	            this._url = url;
	            this._src = $(src);
	            this._des = $(des);
				Event.observe(this._src,'change',this._createAjax.bind(this));//为了防治覆盖this._des的onchange的其他事件
	        },
	        _createAjax : function(){
	           new Ajax.Request(this._url,{
	                parameter:{id:this._src.value},
	                onComplete:this._createSelect.bind(this)
	           });
	        },
	        _createSelect :function(transport){//返回的内容的形式是,value,text;value1,text1注意最后一个不能有‘;’
	          this._des.options.length = 0;//清除以前的数据
	          transport.responseText.split(';').each(function(o){//Builder.node用于创建对象
	        	this._des.add(Builder.node('option',{value:o.split(',')[0],text:o.split(',')[1]}));  	
	          }.bind(this))
	        }
	    }
		Event.observe(window,'load',function(){
			new AutoSelected('/ajaxsubmit','set1','set2');
		})
	</script>
</head>
<body>
	<select id='set1'>
		<option value=''>choose</option>
		<option value='1'>1</option>
		<option value='2'>2</option>
	</select>
	<select id='set2'>
	</select>
</body>
</html>
0 请登录后投票
   发表时间:2007-09-12  
这个问题,我已经有了思路,当选择第一个列表的一行之后,这行的内容即可以得到,然后把这行内容压入数组中,通过Dwr框架进行传递,就可以传进java类文件中,在类文件中读取数据库,并对此行记录进行处理,然后把处理的结果还是以数组的形式返回,即可;

此种方法实现了无刷新页面,即可实现第一个列表的数据选择后,经过处理而后返回给同一个页面的第二个数组中;

Ajax Dwr 不错
0 请登录后投票
   发表时间:2007-09-12  
原来你是要这种互动啊 呵呵 我理解错了

这种 主从列表的联动在新版 ecgrid里会支持的 呵呵
而且支持两种方式 一次加载 和 lazy-load
0 请登录后投票
   发表时间:2007-09-13  
'scripts/builder.js'文件提供一下吧
0 请登录后投票
   发表时间:2007-09-19  
fins 写道
原来你是要这种互动啊 呵呵 我理解错了

这种 主从列表的联动在新版 ecgrid里会支持的 呵呵
而且支持两种方式 一次加载 和 lazy-load


请详细描述,谢谢
0 请登录后投票
论坛首页 Web前端技术版

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