日期:2014-05-18  浏览次数:20691 次

动态表格获得数据问题(SSH)
各位大神:

    我做了一个页面,打个比方。采购单:有主数据,然后有列表。列表我是用JAVASCRIPT写的。动态添加。



var txtDyLastIndex = findObj("txtDyLastIndex",document);
 var rowID = parseInt(txtDyLastIndex.value);
 

 var daoyouFrame = findObj("daoyouFrame",document);
 //添加行
var newTR = daoyouFrame.insertRow(daoyouFrame.rows.length);
newTR.id = "DaoyouItem"+rowID;

var newNameTD=newTR.insertCell(0);
newNameTD.innerHTML = "<input name='dyName_" + rowID + "' id='dyName_" + rowID + "' type='text' size='23' onClick=\"viewSubFeeDetail(4)\"/>"; 

 //添加列:姓名
var newName1TD=newTR.insertCell(1);
 //添加列内容
newName1TD.innerHTML = "<input name='dyMobile" + rowID + "' id='dyMobile" + rowID + "' type='text' size='18' />";



 //添加列:电子邮箱
var newEmailTD=newTR.insertCell(2);
 //添加列内容
newEmailTD.innerHTML = "<input name='dyDate' id='dyDate" + rowID + "' type='text' size='17'  onClick=\"setDay(this);\"/>";


 //添加列:删除按钮
var newDeleteTD=newTR.insertCell(3);
 //添加列内容
newDeleteTD.innerHTML = "<div align='center' style='width:40px'><a href='javascript:;' onclick=\"DeleteDaoyouRow('DaoyouItem" + rowID + "')\">删除</a></div>";

 //将行号推进下一行
txtDyLastIndex.value = (rowID + 1).toString() ;




    在表单提交后,到了actionSupport类里处理时。。。我该怎样才能取得列表中的值呢?
------解决方案--------------------
动态添加的表这样可以直接获得么?我记得以前都需要绑定才行.AJAX只是一种异步提交的方式,和获得数据没有太大关系,我觉得既然能获得数据了,现在这种方法获得也挺好啊
------解决方案--------------------
这些字段都是一个Bean的属性吧,你用Struts直接定义一个对象的List就行了啊。比如你这个Bean叫Dy。
Action中定义一个:public List<Dy> dys;
页面上的name这样传:dys[i] . 属性名  就OK了,i是你当前对象的索引。也就是说你在动态创建的时候设置一个变量来记录当前对象的索引号,没创建一个就i++,这样不就行了。
你都用struts了就没必要用String[] sDyName = (String[])param.get("dyName"); sturts的Method拦截器会自动完成那些事情。
如果我没理解错的话,你是要问这个吗。
------解决方案--------------------
dyName 这些定义数组写上  get/set  方法。直接取看看吧。
------解决方案--------------------
这些字段属性。你在Bean里面get、set一下。然后就可以获取了
------解决方案--------------------
楼主虽然可是实现但是  代码不是很美观啊  
要将数据和显示进行分离 最好使用js表格组件
直接返回json或者xml就可以