jsp table 表格单元格编辑示例

时间:2023-01-24 05:04:12

列表单元格:

//两个 隐藏的 input, 第一个存 记录 id, 单元格内容是排序码 :

<td id="ordinal"><%=ordinal%> <%
        if (!state.equals("已过期")) {
       %><input type="hidden" name="newOrdinal"
       value="<%=rec.getString("advertisementId")%>" /> <%
        }
       %><input type="hidden" value="<%=state%>" /></td>

  

<button class="layui-btn layui-btn-sm" style="margin-left: 46%"
   onclick="modifyOrder()" id="modifyOrder">编辑排序</button>

 function modifyOrder(){
if($("#modifyOrder").html()=="编辑排序"){
$("#modifyOrder").html("保存排序");
$("td[id=ordinal]").each(function(){
if($(this).find("input").length!=1){
$(this).attr("contenteditable","true");
}
});
}else{
var orderRule=/^([1-9][0-9]{0,3})$/;
var flag=1;//保存
$("td[id=ordinal]").each(function(){
if($(this).find("input").length!=1){
var value=$.trim($(this).text());
if(!orderRule.test(value)){
flag=0;
if(value==""){
alert("排序码不能为空!");
}else if(value>9999){
alert("排序超出数值范围,请重新输入!");
}else{ alert("排序码只能为整数!");
} }
}
});
if(flag==1){//保存
$("td[id=ordinal]").each(function(){
if($(this).find("input").length!=1){
$(this).find("input")[0].value+=("/"+$(this).text());//两个 隐藏的 input, 第一个存 记录 id, 单元格内容是排序码
}
});
$.post("web?module=stwmgr&action=Advertisement&method=modifyAdvertisementOrdinal&tokenId=<%=request.getParameter("tokenId") %>",
$("#form2").serialize(),function(data){
$("#modifyOrder").html("编辑排序")
$("td[id=ordinal]").each(function(){
if($(this).find("input").length!=1){
$(this).attr("contenteditable","false");
}
});
alert("保存成功!")
});
}
}
}

后台代码:

public void modifyAdvertisementOrdinal() throws SystemException {
String[] ordinalArray=getParameterValues("newOrdinal");
AdvertisementDAO dao=AppDAO.createAdvertisementDAO();
for (String string : ordinalArray) {
String[] arr=string.split("/");
if(!arr[1].equals("0")){
try {
dao.editAdvertisementOrdinal(arr[0], arr[1].trim());
} catch (Exception e) {
throw new SystemException(e);
}
}
}
}