jqGrid动态更改特定行的edittype
在这之后,我找到了一些我想得到的方法,我遇到了一些麻烦。 这是我的密码:jqGrid动态更改特定行的edittype,jqgrid,cell,Jqgrid,Cell,在这之后,我找到了一些我想得到的方法,我遇到了一些麻烦。 这是我的密码: var myDlg=$(“#dlgpers”),lastsel; myDlg.jqGrid({ url:'pers.php?id='+dataRow.id, mtype:'GET', 数据类型:“json”, ajaxGridOptions:{cache:false}, 身高:250, cmTemplate:{sortable:false}, gridview:没错, 是的, 卷轴:错, colNames:['Id'、'L
var myDlg=$(“#dlgpers”),lastsel;
myDlg.jqGrid({
url:'pers.php?id='+dataRow.id,
mtype:'GET',
数据类型:“json”,
ajaxGridOptions:{cache:false},
身高:250,
cmTemplate:{sortable:false},
gridview:没错,
是的,
卷轴:错,
colNames:['Id'、'Label'、'Information'、'Type'、'Data'],
colModel:[
{name:'id',index:'id',hidden:true,key:true},
{名称:'label',索引:'label',对齐:'right',宽度:100,可编辑:false,
cellattr:函数(rowId、val、rawObject、cm、rdata){
返回'style=“font-weight:bold;右侧边距:5px;左侧边框:0;顶部边框:0;'class=“ui状态处于活动状态”';
}
},
{名称:'info',索引:'info',宽度:200,可编辑:true,编辑类型:'text'},
{名称:'type',索引:'type',宽度:30,隐藏:true},
{名称:'data',索引:'data',宽度:30,隐藏:true}
],
loadComplete:函数(){
var rowIds=myDlg.jqGrid('getdataid');
$.each(行ID,函数(i,行){
var rowData=myDlg.jqGrid('getRowData',row);
如果(rowData.type=='select'){
myDlg.jqGrid('restoreRow',row);
var cm=myDlg.jqGrid('getColProp','info');
cm.edittype='select';
cm.editoptions={value:rowData.data};
myDlg.jqGrid('editRow',row);
cm.edittype='text';
cm.editoptions=null;
cm.editable=true;
}否则{
myDlg.jqGrid('restoreRow',row);
var cm=myDlg.jqGrid('getColProp','info');
cm.edittype='text';
cm.editoptions=null;
cm.editable=true;
myDlg.jqGrid('editRow',row);
cm.edittype='text';
cm.editoptions=null;
cm.editable=true;
}
});
}
});
结果如图所示:
以及JSON响应:
{“页面”:1,“总计”:1,“记录”:1,“行”:[
{“单元格”:[0,“Nom”,“LEBRUN”,“text”,““”]},
{“单元格”:[1,“Pr\u00e9nom”,“Jacques”,“text”,““”],
{“单元格”:[2,“首字母缩写”,“LJ”,“文本”,“']},
{“单元格”:[3,“函数”、“”、“文本”、“”]},
{“cell”[4,“Service”,Administratif,“select”,“0:Administratif;1:Commercial;2:Magasin;3:M\u00e9canique;4:Rejointage;5:Soudure;6:Tests”],
{“cell”:[5,“T\u00e9l\u00e9phone”、“”、“text”、“”]},
{“单元格”:[6,“电子邮件”、“”、“文本”、“”]},
{“cell”:[7,“Statut”,“CDI”,“select”,“0:CDI;1:CDD;2:App;3:Stg;4:Int”],
{“cell”:[8,“Entr\u00e9 le”,“2008-10-06”,“text”,“]},
{“cell”:[9,“Sorti le”,“0000-00-00”,“text”,“]}]
据你所知,我提出两个问题:
var showAbs=function(){
$('#EditDialog').empty();
var $table=$('<table></table>')
.attr('id','dlgcong')
.appendTo($('#EditDialog'));
var myCong = $("#dlgcong");
myCong.jqGrid({
url:'xpabs.php?id='+id+'&y='+y,
datatype: "json",
height:"auto",
cmTemplate: {sortable:false},
gridview: true,
colNames:['Type absence','Début','Fin','id'],
colModel:[
{name:'abs',index:'abs',width:155,editable:true,edittype:'select',
editoptions:{
dataUrl:"selabs.php",
dataEvents: [
{
type: 'change',
fn: function(e) {
$(this).parent().css('background-color','#'+$(this).find('option:selected').attr('colr'));
if($(this).find('option:selected').attr('colr')=='ffffff'){
$(this).parent().parent().find('input').datepicker('disable');
}else{
$(this).parent().parent().find('input').datepicker('enable');
$(this).parent().parent().attr('changed',true);
}
}
}
]
},
cellattr: function (rowId, val, rawObject, cm, rdata) {
return ' style="background-color:#'+rawObject[4]+';color:white;"';
}
},
{name:'debut',index:'debut',align:'center',width:70,editable:true},
{name:'fin',index:'fin',align:'center',width:70,editable:true},
{name:'id',index:'id',hidden:true}
],
jsonReader: {
cell: "",
root: function (obj) {
return obj;
}
},
loadComplete: function (data) {
var $self = $(this),
cm = $self.jqGrid("getColProp", "debut"),
idPrefix = $self.jqGrid("getGridParam", "idPrefix"),
l = data.length,
i,
item;
for (i = 0; i < l; i++) {
item = data[i];
cm.editoptions = {
dataInit: function(element) {
$(element).datepicker({
setDate:item[1],
minDate:'01/01/'+y,
maxDate:'31/12/'+y,
onSelect: function( selectedDate,inst ) {
$(element).val(selectedDate );
$(element).parent().parent().attr('changed',true);
}
})
}
}
}
var cm = $self.jqGrid("getColProp", "fin");
for (i = 0; i < l; i++) {
item = data[i];
cm.editoptions = {
dataInit: function(element) {
$(element).datepicker({
setDate:item[2],
minDate:'01/01/'+y,
maxDate:'31/12/'+y,
onSelect: function( selectedDate,inst ) {
$(element).val(selectedDate );
$(element).parent().parent().attr('changed',true);
}
})
}
}
$self.jqGrid("editRow", idPrefix + item[3]);
}
myCong.find('select').each(function(){
$(this).css({
backgroundColor:'transparent',
color:'white',
border:0,
width:155
});
});
},
idPrefix: "cong",
rowNum: 10000
});
//********************
// Button ' Valider '
//********************
$('<input />')
.attr({
type:'button',
})
.css({
float:'right',
marginTop:'5px'
})
.click(function(){
var toBeSaved='';
myCong.find('tr[changed=true]').each(function(idx){
if(toBeSaved.length>0){
toBeSaved+='|';
}
toBeSaved+=$(this).find('td:eq(3)').text()+';';
toBeSaved+=$(this).find('select option:selected').val()+';';
toBeSaved+=$(this).find('input:eq(0)').val()+';';
toBeSaved+=$(this).find('input:eq(1)').val();
});
if(toBeSaved.length>0){
$.ajax({
url:'majpabs.php?id='+id+'&data='+toBeSaved,
async:false,
dataType:'json',
success:function(data){
myGrid.trigger('reloadGrid');
$('#newAbs').val(' Nouveau ').attr('disabled',false);
}
});
}
})
.val(' Valider les absences ')
.appendTo($('#EditDialog'));
//*******************
// Button ' Retour '
//*******************
$('<input />')
.attr({
type:'button',
id:'newAbs'
})
.css({
float:'left',
marginTop:'5px'
})
.click(function(){
showPers();
})
.val(' Retour ')
.appendTo($('#EditDialog'));
//********************
// Button ' Nouveau '
//********************
$('<input />')
.attr({
type:'button',
disabled:false
})
.css({
float:'left',
marginTop:'5px',
marginLeft:'7px'
})
.click(function(){
if($(this).val()==' Nouveau '){
var myRow = {abs:"0", debut:'00/00/'+y, fin:'00/00/'+y, id:'0'};
myCong.jqGrid('addRowData','',myRow, 'last');
$(this).val(' Sauver ').attr('disabled',true);
}else{
}
})
.val(' Nouveau ')
.appendTo($('#EditDialog'));
}
var showAbs=function(){
$('#EditDialog').empty();
变量$table=$('')
.attr('id','dlgcong')
.appendTo($('EditDialog');
var myCong=$(“#dlgcong”);
myCong.jqGrid({
url:'xpabs.php?id='+id+'&y='+y,
数据类型:“json”,
高度:“自动”,
cmTemplate:{sortable:false},
gridview:没错,
colNames:['Type缺席','Début','Fin','id'],
colModel:[
{名称:'abs',索引:'abs',宽度:155,可编辑:true,编辑类型:'select',
编辑选项:{
dataUrl:“selabs.php”,
数据事件:[
{
键入:“更改”,
fn:功能(e){
$(this.parent().css('background-color','#'+$(this.find('option:selected')).attr('colr');
if($(this).find('option:selected').attr('colr')=='ffffff'){
$(this).parent().parent().find('input').datepicker('disable');
}否则{
$(this).parent().parent().find('input').datepicker('enable');
$(this.parent().parent().attr('changed',true);
}
}
}
]
},
cellattr:函数(rowId、val、rawObject、cm、rdata){
return'style=“background color:#”+rawObject[4]+';color:white;“;
}
},
{名称:'dunch',索引:'dunch',对齐:'center',宽度:70,可编辑:true},
{名称:'fin',索引:'fin',对齐:'center',宽度:70,可编辑:true},
{name:'id',index:'id',hidden:true}
],
jsonReader:{
单元格:“”,
根:函数(obj){
返回obj;
}
},
loadComplete:函数(数据){
var$self=$(此),
cm=$self.jqGrid(“getColProp”,“首次亮相”),
idPrefix=$self.jqGrid(“getGridParam”、“idPrefix”),
l=数据长度,
我
项目;
对于(i=0;i loadComplete: function (data) {
var $self = $(this),
idPrefix = $self.jqGrid("getGridParam", "idPrefix"),
l = data.length,
i,
item,
cm;
for (i = 0; i < l; i++) {
item = data[i];
cm = $self.jqGrid("getColProp", "debut");
cm.editoptions = {
dataInit: function(element) {
//alert('deb'+i);
$(element).datepicker({
setDate:item[1],
minDate:'01/01/'+y,
maxDate:'31/12/'+y,
onSelect: function( selectedDate,inst ) {
$(element).val(selectedDate );
$(element).parent().parent().attr('changed',true);
}
})
}
};
$self.jqGrid("editRow", idPrefix + item[3]);
//
cm = $self.jqGrid("getColProp", "fin");
cm.editoptions = {
dataInit: function(element) {
//alert('fin'+i);
$(element).datepicker({
setDate:item[2],
minDate:'01/01/'+y,
maxDate:'31/12/'+y,
onSelect: function( selectedDate,inst ) {
$(element).val(selectedDate );
$(element).parent().parent().attr('changed',true);
}
})
}
};
$self.jqGrid("editRow", idPrefix + item[3]);
}
myCong.find('select').each(function(){
$(this).css({
backgroundColor:'transparent',
color:'white',
border:0,
width:155
});
});
},