JSP的在网页中怎么实现像Excel表格一样的可以填写数据最后一次性提交。

wuxiaochun 2005-11-24 05:51:20
JSP的在网页中,怎么实现像Excel表格一样的可以填写数据最后一次性提交页面输入的所有数据啊?
...全文
509 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
常遇道 2005-11-29
  • 打赏
  • 举报
回复
今天看到了一篇关于“类似EXCEL的可打印的小工具”
天狼兄网上的
http://www.go699.com/sirius/manage/skill_listview.php?strCate=JAVA
可以看看

一颗油菜 2005-11-26
  • 打赏
  • 举报
回复
通过反射机制可以的...
linlin2005 2005-11-25
  • 打赏
  • 举报
回复
不太明白楼主的意思,帮顶一下
Mark_MaoHUA 2005-11-25
  • 打赏
  • 举报
回复
用循环设置行,你给个输入框给用户,让他输入行数,你把它作为循环的参数就行了
wuxiaochun 2005-11-25
  • 打赏
  • 举报
回复
行不固定,在客户端动态增加可以吗?
wuxiaochun 2005-11-25
  • 打赏
  • 举报
回复
谢谢!mxlmwl(飞星)!和各位CSDN朋友!
mxlmwl 2005-11-25
  • 打赏
  • 举报
回复
如果用structs的话,有个更简单的办法就是使用backed-up mapform就ok了。
mxlmwl 2005-11-25
  • 打赏
  • 举报
回复
接受的时候一样简单,用
for(int i=0;i<objlen.length;i++)
{
String value=request.getParameter("obj"+i);
}
就可以了。
这里的objlen是你增加的控件的总数。你每增加一个控件,就用脚本将控件个数加一,然后在提交的时候把这个控件个数也一并提交就行了。
或者在提交的时候你用js脚本遍历页面,得出你的控件个数也可以。
mxlmwl 2005-11-25
  • 打赏
  • 举报
回复
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.2719.2200" name=GENERATOR></HEAD>
<BODY>
<TABLE cellSpacing=0 cellPadding=0 width="98%" align=center border=0>
<TBODY>
<TR>
<FORM id=form1 name=form1 action=program/survey/SurveyEdit.asp method=post>
<TD>
<TABLE class=tableborder cellSpacing=0 cellPadding=4 width="100%"
border=0>
<TBODY>
<TR>
<TD bgColor=#c7e8f8>
<DIV align=center><B>问题 1:</B> </DIV></TD>
<TD bgColor=#c7e8f8><INPUT class=tableborder size=60 name=Question1>
</TD></TR>
<TR>
<TD> </TD>
<TD><B>问题类型: </B><INPUT type=checkbox value=True name=chkQueType1>
多选类型 <BR>
<DIV id=__idQueOption1 name="__idQueOption1"><B>问题选项:</B> <INPUT
class=tableborder onpropertychange=addNewChild(this) size=60
name=QueOption1> </DIV></TD></TR></TBODY></TABLE>
<DIV id=__idInsertBefore></DIV><INPUT type=hidden value=1 name=newTable>
<BR>
<DIV
style="PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; PADDING-TOP: 4px"
align=right><INPUT class=CustButton onclick=addNewQuestion() type=button value=增加一个新问题>
<INPUT class=CustButton type=submit value=保存设置> <INPUT class=CustButton type=reset value=重新设置>
</DIV></TD></FORM></TR></TBODY></TABLE>
<SCRIPT>
function addNewQuestion()
{

document.form1.newTable.value = parseInt(document.form1.newTable.value) + 1;
var newItemId;
if( (document.form1.newTable.value).length > 2 )
{
alert("您的调查问题总数不能超过 99 个。")
window.location.reload();
}

newItemId = document.form1.newTable.value;

var objItem = '<table cellspacing="0" cellpadding="4" width="100%" border="0" class="tableborder">';
objItem += ' <tr>';
objItem += '<td bgcolor="#C7E8F8">';
objItem += ' <div align="center"><b>问题 ' + newItemId + ':</b> </div>';
objItem += ' </td>';
objItem += ' <td bgcolor="#C7E8F8">';
objItem += ' <input size="60" name="Question' + newItemId + '" class="tableborder">';
objItem += ' </td>';
objItem += ' </tr>';
objItem += ' <tr>';
objItem += ' <td> </td>';
objItem += ' <td><b>问题类型: </b><input type="checkbox" value="True" name="chkQueType' + newItemId + '">';
objItem += ' 多选类型 <br>';
objItem += ' <div id="__idQueOption' + newItemId + '"><b>问题选项:</b>';
objItem += ' <input onpropertychange="addNewChild(this)" size="60" name="QueOption' + newItemId + '" class="tableborder">';
objItem += ' </div>';
objItem += ' </td>';
objItem += ' </tr>';
objItem += '</table>';

document.all.__idInsertBefore.insertAdjacentHTML("beforeBegin", objItem);
}

function showTips(obj)
{
obj.title=obj.value;
}

function addNewChild(obj)
{
var isblank = "false";
var objName = obj.name;
var last2Char = objName.substring(objName.length - 2);
if( last2Char.substring(0, 1) > '9' || last2Char.substring(0, 1) < '0' )
{
last2Char = last2Char.substring(1, 2);
}

for(var i=0; i < document.form1.elements[objName].length; i++)
{
if(document.form1.elements[objName].item(i).value == "")
isblank = "yes"
}

if( isblank != "yes" )
{
var objItem = '<div id="__idQueOption' + last2Char + '"><b>问题选项:</b>';
objItem += ' <input onpropertychange="addNewChild(this)" size="60" name="' + objName + '" class="tableborder" />';
objItem += '</div>';

objName = "__idQueOption" + last2Char;
var varQueOption = document.all[objName];
if( varQueOption.length != null )
varQueOption = varQueOption.item(varQueOption.length-1);

varQueOption.insertAdjacentHTML("afterEnd",objItem);
}
}
</SCRIPT>
</BODY></HTML>
TomyGuan 2005-11-25
  • 打赏
  • 举报
回复
用for(int i ;i<;i++){
裡面有input,然後name=name+<%=i%>
}

這樣子行嗎?

關注 ̄!
zhkchi 2005-11-25
  • 打赏
  • 举报
回复
有难度,关注一下
wuxiaochun 2005-11-25
  • 打赏
  • 举报
回复
就是ntsnow(玛娅传说) 说的这样,怎么实现啊。列不需要增加阿,行怎么动态生成?谢谢!
我的Email:apple1981@126.com QQ:3919744 详细的可以说一下可以吗?在这里谢谢了。
ntsnow 2005-11-25
  • 打赏
  • 举报
回复
行不固定,但列要固定,我们现在用的就是动态添加input域,提交后,在class端循环读取每个域内容,不过速度比较慢,特别是记录比较多时。
wuxiaochun 2005-11-25
  • 打赏
  • 举报
回复
像vb中的DataGrid控件一样的功能,当你添加一行时就在表格中增加以一行(在客户端实现)最后再一次性提交到服务器上。有插件还是只能用JavaScript去实现阿?
成富 2005-11-24
  • 打赏
  • 举报
回复
这个很难嘛,有多少要输的数据就用多少Input,最后提交不就行了。
或者我没明白你的意思
single_study 2005-11-24
  • 打赏
  • 举报
回复
估计难。我见一个人用jsf作了一个控件,能添加完一行,自动增加一行,当多行添加完毕,进行保存。
常遇道 2005-11-24
  • 打赏
  • 举报
回复
网上找找看有没有这方面的插件

wuxiaochun 2005-11-24
  • 打赏
  • 举报
回复
有其它更好的方法吗?
常遇道 2005-11-24
  • 打赏
  • 举报
回复
这个用table做就可以了。只是在排版的时候有点累,要对html比较熟就好搞定了


81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧