JQGrid -如何使用EditUrl
JQGrid - How to use EditUrl
我试图使用删除按钮从JQGrid中删除选定的项目。javascript代码如下
<script type="text/javascript">
$(function(){
$("#list").jqGrid({
url:'<%=request.getContextPath()%>/MyGridServlet?action=fetchData',
editurl:'<%=request.getContextPath()%>/MyGridServlet?action=deleteData',
datatype: 'xml',
mtype: 'POST',
colNames:['Inv No','Date', 'Amount','Tax','Total','Notes'],
colModel :[
{name:'invid', index:'invid', width:55,editable:true, editrules:{required:true,number:true}},
{name:'invdate', index:'invdate', width:90, editable:true, editrules:{required:true}},
{name:'amount', index:'amount', width:80, align:'right',editable:true, editrules:{required:true,number:true}},
{name:'tax', index:'tax', width:80, align:'right',editable:true, editrules:{required:true,number:true}},
{name:'total', index:'total', width:80, align:'right',editable:true, editrules:{required:true,number:true}},
{name:'note', index:'note', width:150, sortable:false,editable:true, editrules:{required:false}}
],
pager: '#pager',
multiselect: true,
loadonce: true,
height: '100%',
weight:'100%',
rowNum:10,
rowTotal: 2000,
rowList:[10,20,30],
sortname: 'invid',
sortorder: 'desc',
viewrecords: true,
gridview: true,
scrollable: false,
caption: 'My first grid',
ondblClickRow: function(rowid) {
grid.jqGrid('editGridRow',rowid, editParam);
return;
}
});
jQuery("#list").jqGrid('navGrid','#pager',{add:false,del:false,edit:true});
jQuery("#list").jqGrid('filterToolbar',{stringResult: true,searchOnEnter : false});
});
function deleteData(){
alert("testing");
var gr = jQuery("#list").jqGrid('getGridParam','selrow');
if( gr != null ) jQuery("#list").jqGrid('delGridRow',gr,{reloadAfterSubmit:false});
else alert("Please Select Row to delete!");
}
Servlet代码如下
package com.test.servlets;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MyGridServlet extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
if (request.getParameter("action").equals("deleteData")) {
response.setContentType("text/xml;charset=UTF-8");
String status = request.getParameter("status");
String rows = request.getParameter("rows");
String page = request.getParameter("page");
int totalPages = 0;
int totalCount = 15;
if (totalCount > 0) {
if (totalCount % Integer.parseInt(rows) == 0) {
totalPages = totalCount / Integer.parseInt(rows);
} else {
totalPages = (totalCount / Integer.parseInt(rows)) + 1;
}
} else {
totalPages = 0;
}
out.print("<?xml version='1.0' encoding='utf-8'?>'n");
out.print("<rows>");
out.print("<page>" + request.getParameter("page") + "</page>");
out.print("<total>" + totalPages + "</total>");
out.print("<records>" + 15 + "</records>");
int srNo = 1;
for (int i = 0; i < 5; i++) {
out.print("<row id='" + i + "'>");
out.print("<cell>" + request.getParameter("invid") + "</cell>");
out.print("<cell>Nov 15, 2011</cell>");
out.print("<cell>00$</cell>");
out.print("<cell>0$</cell>");
out.print("<cell>00$</cell>");
out.print("<cell>000</cell>");
out.print("</row>");
}
out.print("</rows>");
} finally {
out.close();
}
}
}
现在当我运行这个,这工作直到删除提示,即当用户点击删除按钮,onclick deleteData()
函数被调用,警报"测试"显示,删除确认框也弹出,当用户确认删除,我可以看到屏幕上的错误parsererror Status: 'parsererror'. Error code: 200
。
我想要实现的是,在按钮单击,servlet应该被调用,在servlet中,我想从db中删除数据,然后返回。我怎样才能做到这一点呢?另外,Servlet在响应中应该返回什么?
ajax响应看起来像从服务器(使用Chrome网络选项卡或Firebug查看它)?是否真的生成了一个请求?servlet不需要为editurl返回任何内容—响应实际上应该为空。jqGrid应该从你的"url"源重新加载数据来重建网格,在删除后。
相关文章:
- 在指令控制器中使用$attrs时出现问题
- 如何使用jQuery自动打开页面上的所有链接
- 如何使用url加载程序在webpack中导入多个图像
- 使用php或javascript从facebook相册URL中删除多余的部分
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 如何使用jquery在填充自动完成的值后使文本框只读
- 使用agility.js进行页面布局和合成
- 使用Clipboard.js复制span文本
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 如何使用WCF服务和javascript表单post上传.doc文件
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 如何使用动画实现纸张推车
- 如何在Angular2中使用jQuery插件
- 使用Express捕获参数
- jQuery.queue() 与使用回调函数完成某事有何不同
- 使用用于在同一函数中命名函数的变量名称有何意义
- 为什么要使用 jQuery $(window).ready(),它与 $(window).load() 有何不同
- JQGrid -如何使用EditUrl
- 手动调用模块与使用browserify动态调用模块有何不同?
- 在 JavaScript 中使用重排隐藏元素,它与 CSS 隐藏属性有何不同