Jquery jqGrid |添加编辑删除相关网格的行
我有2个网格,第二个网格与第一个网格相关,我想在第二个网格中添加/编辑,我想更新数据库中第一个网格的数据Jquery jqGrid |添加编辑删除相关网格的行,jquery,jqgrid,Jquery,Jqgrid,我有2个网格,第二个网格与第一个网格相关,我想在第二个网格中添加/编辑,我想更新数据库中第一个网格的数据 但问题是 1-我没有第一个网格中所选行的id 2-我不知道如何通过jqGrid将此id发送到服务器 index.html: {% load static %} <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Index Pa
但问题是 1-我没有第一个网格中所选行的id
2-我不知道如何通过jqGrid将此id发送到服务器 index.html:
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Index Page</title>
<!-- external scripts -->
<!-- jQuery & Bootstrap -->
<script type="text/javascript" src="{% static "js/jquery.js" %}"/></script>
<script type="text/javascript" src="{% static "js/jquery.jqGrid.min.js" %}"/></script>
<link rel="stylesheet" type="text/css" media="all" href="{% static "css/bootstrap.min.css?id=1" %}"/>
<script type="text/javascript" src="{% static "js/bootstrap.min.js" %}"/></script>
<!-- jQuery & Bootstrap -->
<!-- jqGrid -->
<link rel="stylesheet" type="text/css" media="screen" href="{% static "css/ui.jqgrid.css" %}" />
<link rel="stylesheet" type="text/css" media="screen" href="{% static "css/ui-lightness/jquery-ui.min.css" %}" />
<script type="text/javascript" src="{% static "js/grid.locale-en.js" %}"/></script>
<!-- jqGrid -->
<!-- own implemented scripts -->
<script type="text/javascript" src="{% static "js/script.js" %}"/></script>
<!-- own implemented scripts -->
<!-- external scripts-->
<script type="text/javascript">
$(function () {
$("#list").jqGrid({
url: "http://localhost:8000/getdata",
datatype: "json",
mtype: "GET",
colNames: ["شناسه", "کد","نام", "عنوان" ,"عنوان انگلیسی", "ظرفیت", "ظرفیت اضافه","قیمت روز"],
colModel: [
{ name: "id", index:"id", width: 60 , editable:true,editoptions: {readonly: "readonly"}},
{ name: "code", width: 60 , editable:true},
{ name: "name", width: 90 , editable:true},
{ name: "title", width: 90 ,editable:"true", editable:true},
{ name: "english_title", width: 100, align: "left", editable:true },
{ name: "capacity", width: 90, align: "left", editable:true },
{ name: "extra_capacity", width: 90, align: "left", editable:true },
{ name: "today_price", width: 80, align: "left" , editable:true},
],
rowNum:10,
rowList:[10,20,30],
pager: '#pager',
loadonce:true,
sortname: 'id',
viewrecords: true,
sortorder: "desc",
rownumbers: true,
rownumWidth: 40,
gridview: true,
multiselect: false,
caption: "اتاق ها",
onSelectRow: function(ids) {
if(ids == null) {
ids=0;
if(jQuery("#list_d").jqGrid('getGridParam','records') >0 )
{
jQuery("#list_d").jqGrid('setGridParam',{url:"getpricelist?q=1&id="+ids,page:1}).trigger('reloadGrid');
}
} else {
jQuery("#list_d").jqGrid('setGridParam',{url:"getpricelist?q=1&id="+ids,page:1}).trigger('reloadGrid');
jQuery("#list_d").jqGrid('setCaption',"لیست قیمت اتاق شماره : "+ids)
}
}
});
jQuery("#list").jqGrid('navGrid','#pager',{edit:true,add:true,del:true,search:false},
/* {
recreateForm: true,
beforeShowForm: function ($form) {
$form.find(".FormElement[readonly]")
.prop("disabled", true)
.addClass("ui-state-disabled")
.closest(".DataTD")
.prev(".CaptionTD")
.prop("disabled", true)
.addClass("ui-state-disabled")
},
}, */
//edit options
{ // Edit option (parameters of editGridRow method)
recreateForm:true,
reloadAfterSubmit:true,
closeOnEscape:true,
savekey: [true,13],
closeAfterEdit:true,
url:'/edit',
ajaxEditOptions: {
beforeSend: function(jqXHR) {
var csrf_token = getCookie('csrftoken');
jqXHR.setRequestHeader('X-CSRF-Token', csrf_token);
}
},
afterSubmit: function () {
jQuery("#list").jqGrid("setGridParam", {datatype: 'json'});
console.log('changed data type');
return [true];
},
editData: {
csrfmiddlewaretoken: getCookie('csrftoken')
}
},
//add options
{
recreateForm:true,
reloadAfterSubmit:true,
closeOnEscape:true,
savekey: [true,13],
closeAfterAdd: true,
url:'/add',
ajaxEditOptions: {
beforeSend: function(jqXHR) {
var csrf_token = getCookie('csrftoken');
jqXHR.setRequestHeader('X-CSRF-Token', csrf_token);
}
},
afterSubmit: function () {
jQuery("#list").jqGrid("setGridParam", {datatype: 'json'});
console.log('changed data type');
return [true];
},
addData: {
csrfmiddlewaretoken: getCookie('csrftoken')
}
},
//delete options
{
recreateForm:true,
reloadAfterSubmit:true,
closeOnEscape:true,
savekey: [true,13],
url:'/delete',
ajaxDelOptions: {
beforeSend: function(jqXHR) {
var csrf_token = getCookie('csrftoken');
jqXHR.setRequestHeader('X-CSRF-Token', csrf_token);
}
},
afterSubmit: function () {
jQuery("#list").jqGrid("setGridParam", {datatype: 'json'});
console.log('changed data type');
return [true];
},
delData: {
csrfmiddlewaretoken: getCookie('csrftoken')
}
}
);
jQuery("#list").jqGrid('filterToolbar',{stringResult: true,searchOnEnter : false});
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
jQuery("#list_d").jqGrid({
height: 100,
width:345,
url:'getpricelist?q=1&id=1',
datatype: "json",
colNames:['از','تا', 'قیمت'],
colModel:[
{name:'from',index:'from', width:100, editable:true},
{name:'to',index:'to', width:100, editable:true},
{name:'price',index:'price', width:80, editable:true},
],
rowNum:5,
rowList:[5,10,20],
pager: '#pager_d',
sortname: 'item',
viewrecords: true,
sortorder: "asc",
multiselect: false,
caption:"لیست قیمت"
}).navGrid('#pager_d',{add:true,edit:true,del:true},
//edit options
{ // Edit option (parameters of editGridRow method)
recreateForm:true,
reloadAfterSubmit:true,
closeOnEscape:true,
savekey: [true,13],
closeAfterEdit:true,
url:'/ple',
ajaxEditOptions: {
beforeSend: function(jqXHR) {
var csrf_token = getCookie('csrftoken');
jqXHR.setRequestHeader('X-CSRF-Token', csrf_token);
}
},
afterSubmit: function () {
jQuery("#list").jqGrid("setGridParam", {datatype: 'json'});
console.log('ple data type');
return [true];
},
editData: {
csrfmiddlewaretoken: getCookie('csrftoken')
}
},
//add options
{
recreateForm:true,
reloadAfterSubmit:true,
closeOnEscape:true,
savekey: [true,13],
closeAfterAdd: true,
url:'/pla',
ajaxEditOptions: {
beforeSend: function(jqXHR) {
var csrf_token = getCookie('csrftoken');
jqXHR.setRequestHeader('X-CSRF-Token', csrf_token);
}
},
afterSubmit: function () {
jQuery("#list").jqGrid("setGridParam", {datatype: 'json'});
console.log('pla data type');
return [true];
},
editData: {
csrfmiddlewaretoken: getCookie('csrftoken')
}
},
//delete options
{
recreateForm:true,
reloadAfterSubmit:true,
closeOnEscape:true,
savekey: [true,13],
url:'/pld',
ajaxDelOptions: {
beforeSend: function(jqXHR) {
var csrf_token = getCookie('csrftoken');
jqXHR.setRequestHeader('X-CSRF-Token', csrf_token);
}
},
afterSubmit: function () {
jQuery("#list").jqGrid("setGridParam", {datatype: 'json'});
console.log('pld data type');
return [true];
},
delData: {
csrfmiddlewaretoken: getCookie('csrftoken')
}
}
);
});
</script>
</head>
<body>
<table id="list"><tr><td></td></tr></table>
<div id="pager"></div>
<table id="list_d"></table>
<div id="pager_d"></div>
</body>
</html>
{%load static%}
索引页
$(函数(){
$(“#列表”).jqGrid({
url:“http://localhost:8000/getdata",
数据类型:“json”,
mtype:“获取”,
此外,还会有以下姓名的门门名:[“上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学上学][1608;ز”],
colModel:[
{name:“id”,index:“id”,宽度:60,可编辑:true,编辑选项:{readonly:“readonly”},
{name:“code”,宽度:60,可编辑:true},
{name:“name”,宽度:90,可编辑:true},
{name:“title”,宽度:90,可编辑:“true”,可编辑:true},
{name:“english_title”,宽度:100,对齐:“left”,可编辑:true},
{name:“capacity”,width:90,align:“left”,可编辑:true},
{名称:“额外容量”,宽度:90,对齐:“左”,可编辑:真},
{名称:“今日价格”,宽度:80,对齐:“左”,可编辑:真},
],
rowNum:10,
行列表:[10,20,30],
寻呼机:“#寻呼机”,
有一次:是的,
sortname:'id',
viewrecords:是的,
巫师:“描述”,
行数:对,
行宽:40,
gridview:没错,
多选:错,
描述:“ات㶈ها”,
OnSetrow:功能(ids){
if(ids==null){
ids=0;
if(jQuery(“#list#d”).jqGrid('getGridParam','records')>0)
{
jQuery(“#list_d”).jqGrid('setGridParam',{url:'getpricelist?q=1&id=“+ids,page:1}).trigger('reloadGrid');
}
}否则{
jQuery(“#list_d”).jqGrid('setGridParam',{url:'getpricelist?q=1&id=“+ids,page:1}).trigger('reloadGrid');
jQuery(“列表”).jqGrid(“setCaption”),“id”
}
}
});
jQuery(#list”).jqGrid('navGrid','#pager',{edit:true,add:true,del:true,search:false},
/* {
再现形式:正确,
beforeShowForm:函数($form){
$form.find(“.FormElement[readonly]”)
.prop(“禁用”,真)
.addClass(“ui状态已禁用”)
.最近(“.DataTD”)
.prev(“.CaptionTD”)
.prop(“禁用”,真)
.addClass(“ui状态已禁用”)
},
}, */
//编辑选项
{//Edit选项(editGridRow方法的参数)
再现形式:正确,
reloadAfterSubmit:对,
closeOnEscape:没错,
savekey:[true,13],
closeAfterEdit:true,
url:“/edit”,
ajaxEditOptions:{
发送前:函数(jqXHR){
var csrf_token=getCookie('csrftoken');
jqXHR.setRequestHeader('X-CSRF-Token',CSRF_Token);
}
},
后提交:函数(){
jQuery(“#list”).jqGrid(“setGridParam”,{datatype:'json'});
log('changed data type');
返回[真];
},
编辑数据:{
csrfmiddlewaretoken:getCookie('csrftoken')
}
},
//添加选项
{
再现形式:正确,
reloadAfterSubmit:对,
closeOnEscape:没错,
savekey:[true,13],
closeAfterAdd:true,
url:“/add”,
ajaxEditOptions:{
发送前:函数(jqXHR){
var csrf_token=getCookie('csrftoken');
jqXHR.setRequestHeader('X-CSRF-Token',CSRF_Token);
}
},
后提交:函数(){
jQuery(“#list”).jqGrid(“setGridParam”,{datatype:'json'});
log('changed data type');
返回[真];
},
添加数据:{
csrfmiddlewaretoken:getCookie('csrftoken')
}
},
//删除选项
{
再现形式:正确,
reloadAfterSubmit:对,
closeOnEscape:没错,
savekey:[true,13],
url:“/delete”,
ajaxDelOptions:{
发送前:函数(jqXHR){
var csrf_token=getCookie('csrftoken');
jqXHR.setRequestHeader('X-CSRF-Token',CSRF_Token);
}
},
后提交:函数(){
jQuery(“#list”).jqGrid(“setGridParam”,{datatype:'json'});
log('changed data type');
返回[真];
},
delData:{
csrfmiddlewaretoken:getCookie('csrftoken')
}
}
);
jQuery(#list”).jqGrid('filterToolbar',{stringResult:true,SearchOneNet:false});
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
jQuery(“#list_d”).jqGrid({
身高:100,
宽度:345,
url:'getpricelist?q=1&id=1',
数据类型:“json”,
colNames:[‘از’、‘تا’、‘قیمت’],
colModel:[
{名称:'from',索引:'from',宽度:100,可编辑:true},
{名称:'to',索引:'to',宽度:100,可编辑:true},
{名称:'price',索引:'price',宽度:80,可编辑:true},
],
行数:5,
行列表:[5,10,20],
寻呼机:“#寻呼机",
sortname:'项目',
viewrecords:是的,
分拣员:“asc”,
多选:错,
标题:“?
afterSubmit: function () {
var $mainGrid = $("#list"),
pageOfMainGrid = $mainGrid.jqGrid("getGridParam", "page");
$mainGrid.jqGrid("setGridParam", {datatype: "json"})
.trigger("reloadGrid", { page: pageOfMainGrid, current: true });
console.log('pld data type');
return [true];
}
$.extend(true, $.jgrid.edit, {
recreateForm: true,
reloadAfterSubmit: true,
closeOnEscape: true,
savekey: [true, 13],
closeAfterEdit: true,
closeAfterAdd: true,
ajaxEditOptions: {
beforeSend: function(jqXHR) {
var csrf_token = getCookie('csrftoken');
jqXHR.setRequestHeader('X-CSRF-Token', csrf_token);
}
},
afterSubmit: function () {
jQuery(this).jqGrid("setGridParam", {datatype: 'json'});
console.log('changed data type');
return [true];
},
editData: {
csrfmiddlewaretoken: getCookie('csrftoken')
}
});
$.extend(true, $.jgrid.del, {
closeOnEscape: true,
ajaxDelOptions: {
beforeSend: function(jqXHR) {
var csrf_token = getCookie('csrftoken');
jqXHR.setRequestHeader('X-CSRF-Token', csrf_token);
}
},
afterSubmit: function () {
jQuery(this).jqGrid("setGridParam", {datatype: 'json'});
console.log('changed data type');
return [true];
}
delData: {
csrfmiddlewaretoken: getCookie('csrftoken')
}
});
jQuery("#list").jqGrid('navGrid', '#pager', {search: false},
{ url: '/edit' }, { url: '/add' }, {url:'/delete'});
var reloadMainGrid = function () {
var $mainGrid = $("#list"),
pageOfMainGrid = $mainGrid.jqGrid("getGridParam", "page");
$mainGrid.jqGrid("setGridParam", {datatype: "json"})
.trigger("reloadGrid", { page: pageOfMainGrid, current: true });
console.log('pld data type');
return [true];
};
// set new afterSubmit callback for Add/Edit
$.extend(true, $.jgrid.edit, { afterSubmit: reloadMainGrid });
jQuery("#pager_d").jqGrid('navGrid', '#pager', {},
{ url: url:'/ple' }, { url: '/pla' },
{ url: '/delete', afterSubmit: reloadMainGrid });
editData: {
csrfmiddlewaretoken: getCookie('csrftoken'),
additional_data1 : additional_value1,
additional_data2 : additional_value2,
// any other key:value you want :)
}
additional_data1 = request.POST.get('additional_data1')
#and any other key value using this format : variable_name = request.POST.get('key')