社区
Web 开发
帖子详情
如何在JSP页面中实现像C/S结构的多行修改,100分相送!!!!!
bitou
2004-08-04 10:21:53
用的是struts 架构,weblogic 8 + DB2 7.2
...全文
179
18
打赏
收藏
如何在JSP页面中实现像C/S结构的多行修改,100分相送!!!!!
用的是struts 架构,weblogic 8 + DB2 7.2
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
BillyW
2004-08-05
打赏
举报
回复
我给你这个代码。可以考虑配合一下struts的actionform功能
把下面的代码放到一个HTML文件中:
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=gb2312">
<TITLE>测试修改表格</TITLE>
<STYLE>
/*提示层的样式*/
div
{
BORDER-RIGHT: #80c144 1px solid;
BORDER-TOP: #80c144 1px solid;
VISIBILITY: hidden;
BORDER-LEFT: #80c144 1px solid;
CURSOR: default;
LINE-HEIGHT: 20px;
BORDER-BOTTOM: #80c144 1px solid;
FONT-FAMILY: 宋体;
font-size:12px;
POSITION: absolute;
BACKGROUND-COLOR: #f6f6f6;
TOP:30px;
LEFT:30px;
}
/*tr的样式*/
tr
{
font-family: "宋体";
color: #000000;
background-color: #C1DBF5;
font-size: 12px
}
/*table脚注样式*/
.TrFoot
{
FONT-SIZE: 12px;
font-family:"宋体", "Verdana", "Arial";
BACKGROUND-COLOR: #6699CC;
COLOR:#FFFFFF;
height: 25;
}
/*trhead属性*/
.TrHead
{
FONT-SIZE: 13px;
font-family:"宋体", "Verdana", "Arial";
BACKGROUND-COLOR: #77AADD;
COLOR:#FFFFFF;
height: 25;
}
/*文本框样式*/
INPUT
{
BORDER-COLOR: #AACEF7 #AACEF7 #AACEF7 #AACEF7;
BORDER-RIGHT: 1px solid;
BORDER-TOP: 1px solid;
BORDER-LEFT: 1px solid;
BORDER-BOTTOM: 1px solid;
FONT-SIZE: 12px;
FONT-FAMILY: "宋体","Verdana";
color: #000000;
BACKGROUND-COLOR: #E9EFF5;
}
/*button样式*/
button
{
BORDER-COLOR: #AACEF7 #AACEF7 #AACEF7 #AACEF7;
BACKGROUND-COLOR: #D5E4F3;
CURSOR: hand;
FONT-SIZE:12px;
BORDER-RIGHT: 1px solid;
BORDER-TOP: 1px solid;
BORDER-LEFT: 1px solid;
BORDER-BOTTOM: 1px solid;
COLOR: #000000;
}
</STYLE>
</HEAD>
<BODY>
<SCRIPT language = "JavaScript">
<!--全局变量
//标志位,值为false代表未打开一个编辑框,值为true为已经打开一个编辑框开始编辑
var editer_table_cell_tag = false;
//开启编辑功能标志,值为true时为允许编辑
var run_edit_flag = false;
//-->
</SCRIPT>
<SCRIPT language = "JavaScript">
<!--
/**
* 编辑表格函数
* 单击某个单元格可以对里面的内容进行自由编辑
* @para tableID 为要编辑的table的id
* @para noEdiID 为不要编辑的td的ID,比如说table的标题
* 可以写为<TD id="no_editer">自由编辑表格</TD>
* 此时该td不可编辑
*/
function editerTableCell(tableId,noEdiId)
{
var tdObject = event.srcElement;
var tObject = ((tdObject.parentNode).parentNode).parentNode;
if(tObject.id == tableId &&tdObject.id != noEdiId&&editer_table_cell_tag == false && run_edit_flag == true)
{
tdObject.innerHTML = "<input type=text id=edit_table_txt name=edit_table_txt value="+tdObject.innerText+" size='15' onKeyDown='enterToTab()'> <input type=button value=' 确定 ' onclick='certainEdit()'>";
edit_table_txt.focus();
edit_table_txt.select();
editer_table_cell_tag = true;
//修改按钮提示信息
editTip.innerText = "请先点确定按钮确认修改!";
}
else
{
return false;
}
}
/**
* 确定修改
*/
function certainEdit()
{
var bObject = event.srcElement;
var tdObject = bObject.parentNode;
var txtObject = tdObject.firstChild;
tdObject.innerHTML = txtObject.value;
//代表编辑框已经关闭
editer_table_cell_tag = false;
//修改按钮提示信息
editTip.innerText = "请单击某个单元格进行编辑!";
}
function enterToTab()
{
if(event.srcElement.type != 'button' && event.srcElement.type != 'textarea'
&& event.keyCode == 13)
{
event.keyCode = 9;
}
}
/**
* 控制是否编辑
*/
function editStart()
{
if(event.srcElement.value == "开始编辑")
{
event.srcElement.value = "编辑完成";
run_edit_flag = true;
}
else
{
//如果当前没有编辑框,则编辑成功,否则,无法提交
//必须按确定按钮后才能正常提交
if(editer_table_cell_tag == false)
{
alert("编辑成功结束!");
event.srcElement.value = "开始编辑";
run_edit_flag = false;
}
}
}
/**
* 根据不同的按钮提供不同的提示信息
*/
function showTip()
{
if(event.srcElement.value == "编辑完成")
{
editTip.style.top = event.y + 15;
editTip.style.left = event.x + 12;
editTip.style.visibility = "visible";
}
else
{
editTip.style.visibility = "hidden";
}
}
-->
</SCRIPT>
<TABLE id="editer_table" width="100%" align="center"
onclick="editerTableCell('editer_table','no_editer')">
<TR class="TrHead">
<TD colspan="3" align="center" id="no_editer">自由编辑表格</TD>
</TR>
<TR>
<TD width="33%">单击开始编辑按钮,然后点击各单元格编辑</TD>
<TD width="33%">2</TD>
<TD width="33%">3</TD>
</TR>
<TR>
<TD width="33%">4</TD>
<TD width="33%">5</TD>
<TD width="33%">6</TD>
</TR>
<TR>
<TD width="33%">one</TD>
<TD width="33%">two</TD>
<TD width="33%">three</TD>
</TR>
<TR>
<TD width="33%">four</TD>
<TD width="33%">five</TD>
<TD width="33%">six</TD>
</TR>
<TR class="TrFoot">
<TD colspan="3" align="center" id="no_editer">
<INPUT type="button" class="bt" value="开始编辑" onClick="editStart()" onMouseOver="showTip()" onMouseMove="showTip()" onMouseOut="editTip.style.visibility = 'hidden';">
</TD>
</TR>
</TABLE>
</BODY>
<DIV id="editTip">请单击某个单元格进行编辑!</DIV>
</HTML>
charmguy
2004-08-05
打赏
举报
回复
用request.getParameterValues()返回同一个input的值的String[],循环着将字段放到Bean里,再将Bean放到Collection里,接着调用DAO的方法Update,比如:
Bean bean = new Bean();
Collection beans = new ArrayList();
String[] ids = request.getParameterValues("id");
String[] names = request.getParameterValues("name");
for (int i = 0; i < ids.length; i++)
{
bean.setId(ids[i]);
bean.setName(names[i]);
beans.add(bean);
}
DAO.updateBeans(beans);
在updateBeans方法里可以用Statement的Patch方式执行SQL,
抛砖引玉,共同关注!
zzack
2004-08-05
打赏
举报
回复
我觉得只有用集合保存中间数据,并在集合中设定一个是否更新标志,最后一次提交到服务器用循环将数据更新。
yangwlqi
2004-08-05
打赏
举报
回复
用集合存储表单数据,写个类从集合中循环取出数据并修改数据库
bitou
2004-08-05
打赏
举报
回复
楼上说的是这个意思,但不知有没有什么好的解决办法
bug0303
2004-08-05
打赏
举报
回复
在你的页面中事先放上一大堆文本框,其中的value就是你从数据库中提取的数据,同时使用一大堆隐藏域保存每条记录的ID。提交时,根据隐藏域中的id,在数据表中找到相应记录,再把这个id对应的那一行文本框数据update进去。是这个意思吗?
junmayang
2004-08-05
打赏
举报
回复
何为多行修改?
bitou
2004-08-05
打赏
举报
回复
问题没解决啊,我指的不是多选,而是多条记录的在同一个页面中修改,然后提交,全部保存。我真晕了,大家都看不懂我的题目
fanciex
2004-08-04
打赏
举报
回复
你先产生命名有规律的元件如C1_0,C1_1...C1_n
C2_0,C2_1...
,然后统统传到后端,既然命名有规律自然用循环都能取得到,然后再一条一条的update好了
哈哈,比较麻烦...
fanciex
2004-08-04
打赏
举报
回复
sorry,发错地方了
bitou
2004-08-04
打赏
举报
回复
也许我题目说得不够清楚,因为大多数情况下我们修改记录时,都是一次修改一条记录,但现在有没有办法在列表状态下一次修改多条记录,然后保存,如同C/S结构下,在列表中列出了很多记录,可以修改任意多条记录中的数据,然后全部保存。
fanciex
2004-08-04
打赏
举报
回复
http://jakarta.apache.org/poi/index.html
Jakarta POI - Java API To Access Microsoft Format Files
scvzhang
2004-08-04
打赏
举报
回复
不懂
bitou
2004-08-04
打赏
举报
回复
能给出源码更好,
ouyangchun@163.com
bug0303
2004-08-04
打赏
举报
回复
在显示你的列表信息时就使用HTML组织checkbox呀(name需要相同),里面的value可以是记录的主键ID。用户选中提交后,formbean里可以得到checkbox的域值数组。
TinyJimmy
2004-08-04
打赏
举报
回复
可以, 写一大堆JS, 用JS数组保存临时数据, 保存时再取出提交. 不过这样不好扩展
不过既然使用B/S, 和C/S的设计就有不同了. 试一试改变你的设计思路?
jokerjava
2004-08-04
打赏
举报
回复
checkbox和select都可以多选
bitou
2004-08-04
打赏
举报
回复
用的是struts结构,有点不太方便,有没有其它方法呢?
javawen之jsp从入门到项目实战(jsp+servlet)
本课程对JSP做了详细讲解,主要涉及的课程内容:jsp的底层原理,jsp与servlet的区别,
jsp页面
如何插入java代码,jsp
中
的3个指令、7个动作,9个内置对象的使用,EL表达式,JSTL标签,如何自定义标签,MVC模式,jsp+...
JSP页面
1.
JSP页面
的基本
结构
在传统的HTML页面
中
加入Java程序片和JSP标签,就构成了一个
JSP页面
。一个
JSP页面
可由5种元素组合而成:(1)普通的HTML标记符;(2)JSP标记,如指令标记、动作标记;(3)成员变量和方法;...
JSP
1.
JSP页面
的基本
结构
在传统的HTML页面
中
加入Java程序片和JSP标签,就构成了一个
JSP页面
。一个
JSP页面
可由5种元素组合而成:(1)普通的HTML标记符;(2)JSP标记,如指令标记、动作标记;(3)...
JSP入门教程
JavaServer Pages (JSP)是基于Java的技术,用于创建可支持跨平台及跨Web服务器的动态网页。 JSP可与微软的Active Server Pages (ASP)相媲美,但JSP使用的是类似于HTML的标记和Java 代码片段而不是用VBScript。当你...
使用JSP/Servlet技术开发新闻发布系统
第一章:动态网页开发基础 动态网页:是指在服务器端运行的,使用程序语言设计的交互式网页,它们会根据某种条件的变化,返回不同的网页内容 ... 无须改变页面代码,便会自动生成新的页面
Web 开发
81,092
社区成员
341,716
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章