Jquery 无法在jqgrid内联编辑中将编辑的数据传送到数据库
我正在使用bootstrap开发一个基于web的应用程序。 我试图在页面加载时在网格中实现内联编辑,但当我单击网格上的“编辑”按钮时,所有单元格都成为可编辑文本,然后单击“保存”按钮,它会显示我在特定单元格中键入的文本。但单击“保存”按钮时,我无法调用在DB中执行数据更新的函数 这是我的代码:Jquery 无法在jqgrid内联编辑中将编辑的数据传送到数据库,jquery,twitter-bootstrap,jqgrid,Jquery,Twitter Bootstrap,Jqgrid,我正在使用bootstrap开发一个基于web的应用程序。 我试图在页面加载时在网格中实现内联编辑,但当我单击网格上的“编辑”按钮时,所有单元格都成为可编辑文本,然后单击“保存”按钮,它会显示我在特定单元格中键入的文本。但单击“保存”按钮时,我无法调用在DB中执行数据更新的函数 这是我的代码: $(document).ready(function () { var GetUrl = Web_Path + '/Test/TestHandler/GetTestData/' + AjaxH
$(document).ready(function () {
var GetUrl = Web_Path + '/Test/TestHandler/GetTestData/' + AjaxHandlerName;
jQuery("#jqGrid-container").jqGrid({
url: GetUrl,
datatype: 'json',
mtype: 'POST',
postData: { SearchInfo: function () { return getSearchPostData() } },
colNames: [' ', 'ID', 'Name', 'ContactNo', 'EmpId', 'MailId', 'RoleName'],
colModel: [
{ name: 'myac', index: '', width: 80, fixed: true, sortable: false, resize: false,
formatter: 'actions',
formatoptions: {
keys: true,
delOptions: { recreateForm: true, beforeShowForm: beforeDeleteCallback }
}
},
{ name: 'Id', index: 'Id', hidden: true, editable: true },
{ name: 'Name', index: 'Name', validation: { required: true }, sortable: true, editable: true, editoptions: { size: "40", maxlength: "50"} },
{ name: 'ContactNo', index: 'ContactNo', sortable: false, editable: true, editoptions: { size: "20", maxlength: "30"} },
{ name: 'EmpId', index: 'EmpId', sortable: false, editable: true, editoptions: { size: "20", maxlength: "30"} },
{ name: 'MailId', index: 'MailId', sortable: false, editable: true, editoptions: { size: "40", maxlength: "50"} },
{name: 'RoleName', index: 'RoleName', sortable: false }
],
jsonReader: {
id: 'Id',
repeatitems: false
},
height: "100%",
pager: '#jqGrid-pager',
rowNum: 10,
rowList: [10, 20, 30],
sortname: 'Id',
sortorder: 'desc',
viewrecords: true,
caption: "JQ grid data",
loadComplete: function () {
var table = this;
updatePagerIcons(table);
}
});
});
function getSearchPostData() {
var searchData = {};
searchData.Id=1;
return JSON.stringify(searchData);
}
function updatePagerIcons(table) {
var replacement =
{
'ui-icon-seek-first': 'icon-double-angle-left bigger-140',
'ui-icon-seek-prev': 'icon-angle-left bigger-140',
'ui-icon-seek-next': 'icon-angle-right bigger-140',
'ui-icon-seek-end': 'icon-double-angle-right bigger-140'
};
$('.ui-pg-table:not(.navtable) > tbody > tr > .ui-pg-button > .ui-icon').each(function () {
var icon = $(this);
var $class = $.trim(icon.attr('class').replace('ui-icon', ''));
if ($class in replacement) icon.attr('class', 'ui-icon ' + replacement[$class]);
})
}
<div class="row">
<div class="col-xs-12">
<table id="jqGrid-container" class="ui-jqgrid ui-widget ui-widget-content ui-corner-all">
</table>
<div id="jqGrid-pager">
</div>
</div>
</div>
$(文档).ready(函数(){
var GetUrl=Web_Path+'/Test/TestHandler/GetTestData/'+AjaxHandlerName;
jQuery(“jqGrid容器”).jqGrid({
url:GetUrl,
数据类型:“json”,
mtype:“POST”,
postData:{SearchInfo:function(){return getSearchPostData()}},
colNames:['''ID','Name','ContactNo','EmpId','MailId','RoleName'],
colModel:[
{name:'myac',index:'',宽度:80,固定:true,可排序:false,调整大小:false,
格式化程序:“操作”,
格式选项:{
凯斯:没错,
delOptions:{recreateForm:true,beforeShowForm:beforeDeleteCallback}
}
},
{name:'Id',index:'Id',hidden:true,editable:true},
{name:'name',index:'name',验证:{required:true},sortable:true,editable:true,editoptions:{size:'40',maxlength:'50},
{name:'ContactNo',index:'ContactNo',sortable:false,edita:true,editoptions:{size:'20',maxlength:'30'},
{name:'EmpId',index:'EmpId',sortable:false,editable:true,editoptions:{size:'20',maxlength:'30'},
{name:'MailId',index:'MailId',sortable:false,editable:true,editoptions:{size:'40',maxlength:'50'},
{name:'RoleName',index:'RoleName',sortable:false}
],
jsonReader:{
id:'id',
重复项:false
},
高度:“100%”,
寻呼机:“#jqGrid寻呼机”,
rowNum:10,
行列表:[10,20,30],
sortname:'Id',
排序器:“desc”,
viewrecords:是的,
标题:“JQ网格数据”,
loadComplete:函数(){
var表=此;
UpdatePage图标(表格);
}
});
});
函数getSearchPostData(){
var searchData={};
searchData.Id=1;
返回JSON.stringify(searchData);
}
函数UpdatePage图标(表){
var替换=
{
“ui图标先搜索”:“图标双角度左偏大-140”,
“ui图标搜索上一个”:“图标角度左偏大-140”,
“用户界面图标搜索下一步”:“图标角度右大-140”,
“ui图标搜索结束”:“图标双角度右偏大-140”
};
$('.ui pg table:not(.navtable)>tbody>tr>.ui pg button>.ui icon')。每个(函数(){
var icon=$(这个);
var$class=$.trim(icon.attr('class')。replace('ui-icon','');
if($class in replacement)icon.attr('class','ui icon'+replacement[$class]);
})
}
我使用了jquery.jqGrid.min.js
当我尝试保存时,无法将数据传送到DB。。请帮助我。您需要使用jqgrid的
editurl
属性,它基本上是服务器的控制器URL。触发保存操作时,将调用editurl
调用editurl
时,以下数据根据
数据是如何组织的
编辑行并创建输入元素时,我们设置以下规则:
- 表格行变为可编辑属性=“1”
- 数组savedRow(网格中的选项)由值填充 在编辑之前。这是一个名称:值对数组,包含其他 对id:rowid
- 隐藏字段不包括在内
- 可编辑元素的id被构造为“rowid_u2;”+名称 从colModel数组。例如,如果我们编辑id为10的行,并且 唯一可编辑的元素是“myname”(来自colModel),然后id变为 10_我的名字
- 可编辑元素的名称由 colModel array-property-保存或还原行后的名称 可编辑属性设置为“0”,savedRow项具有 id=删除了rowid
- name:value对,其中name是输入元素的名称 在行中表示(这适用于所有输入元素)
- 此外,我们还添加了一个pairid:rowid,其中rowid是 划船
- 如果extraparam参数不是空的,则使用 公布数据