我需要有一个editype复选标记列,当checkmark被选中时,今天的日期会自动添加到复选标记旁边并在提交到单元格之后,如果未选中,则在editform上删除日期,并在提交时发送“null”以使单元格保持空白。我知道我可以使用使用JqGrid如何添加将日期发布到列的编辑类型复选标记?
{ name: 'MyCol', index: 'MyCol', editable:true, edittype:'checkbox', editoptions: { value:"True:False" }
但我不知道如何显示旁边的复选框(如PIC)的日期,然后将该日期添加到细胞上提交。请帮助。 我的代码,因为它现在有它的存在与答案更新:
`
<title>PWe</title>
<link rel="stylesheet" type="text/css" media="screen" href="css/jquery-ui-1.10.3.custom.min.css" />
<link rel="stylesheet" type="text/css" media="screen" href="css/ui.jqgrid.css" />
<link rel="stylesheet" type="text/css" media="screen" href="css/nhf.css" />
<script src="js/jquery-1.9.0.min.js" type="text/javascript"></script>
<script src="js/i18n/grid.locale-en.js" type="text/javascript"></script>
<script src="js/jquery.jqGrid.min.js" type="text/javascript"></script>
<script src="js/jquery-ui-1.10.3.custom.js" type="text/javascript"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.js"></script>
<script type="text/javascript">
$(function(){
$("#list").jqGrid({
url:'request.php',
editurl: "jqGridCrud.php",
datatype: 'xml',
mtype: 'GET',
height: 'AUTO',
width: 900,
scrollOffset:0,
hidegrid: false,
colNames:['id','Project', 'Assigned To','Dev','Approve','Due Date','Attachments','Notes','App','mydate2',""],
colModel :[
{name:'id', index:'id', width:28, align: 'center'},
{name:'name', index:'name', width:170, align:'left',editable:true, editoptions:{
size:60} },
{name:'id_continent', index:'id_continent', width:50, align:'right',editable:true,edittype:'select',
editoptions:{value: "Henry:Henry; Ramon:Ramon; Paul:Paul" },mtype:'POST' },
{name:'lastvisit', index:'lastvisit', width:55, align:'right',formatter: 'date',srcformat:'yyyy-mm-dd',newformat: 'm/d/yy',editable:true, edittype: 'text',mtype:'POST' , editoptions:{size:10, dataInit:function(elem){$(elem).datepicker({dateFormat:'m/d/yy'});}}} ,
{name:'cdate', index:'cdate', width:55, align:'right',formatter: 'date',srcformat:'yyyy-mm-dd',newformat: 'm/d/yy', edittype: 'text',editable:true ,mtype:'POST' ,editoptions:{size:10, dataInit:function(elem){$(elem).datepicker({dateFormat:'m/d/yy'});}}} ,
{name:'ddate', index:'ddate', width:55, align:'right',formatter: 'date',srcformat:'yyyy-mm-dd',newformat: 'm/d/yy',date:'true',editable:true, edittype: 'text',editoptions:{size:10, dataInit:function(elem){$(elem).datepicker({dateFormat:'m/d/yy'});}}} ,
{name:'email', index:'email', width:50,align:'center',sortable:false,mtype:'POST',formatter:function(cellvalue, options, rowObject) {
if (cellvalue === undefined || cellvalue === null || cellvalue === 'NULL') {
return ''; // or just ""
}
return '<a href="' + cellvalue + '"target="_blank"><img src="file.png"> </a>';
}},
{name:'notes', index:'notes', width:100, align:'left',sortable:false, editable:true,edittype:'textarea',formatter:'link', editoptions:{
rows:10,cols:60} },
{ name: "hello", index:'hello',width: 17, align: "right", formatter: "checkbox",
editable: true,
edittype: "checkbox",
editoptions: {
value: "Yes:No",
defaultValue: "Yes",
dataEvents: [
{
type: "change",
data: { uncheckedDate: "" },
fn: function (e) {
if ($(this).is(':checked')) {
var date = new Date(Date.now()),
strDate = (date.getMonth() + 1) + "/" +
date.getDate() + "/" +
date.getFullYear();
$("#mydate").text(strDate);
} else {
$("#mydate").text(e.data.uncheckedDate);
}
}
}
]
}},
{name:'mydate2', index:'mydate2', width:40, align:'left',formatter: 'date',srcformat:'yyyy-mm-dd',newformat: 'm/d/yy',date:'true',editable:false} ,
{name:'act',index:'act',width:30 ,align:'left', sortable:false,formatter: "actions",cellattr: function() { return ' title="Delete Project"'; },
formatoptions: {
keys: true,
deltitle: 'delete',
delbutton: true,
editbutton:false,
delOptions: {
url: 'delete-perm.php',
afterShowForm: function ($form) {
$("#dData", $form.parent()).click();
},
msg: "Remove Selected Project?",
bSubmit: "Remove",
bCancel: "Cancel"
}
}},
],
pager: '#pager',
rowNum:30,
rowList:[30,40,80],
sortname: 'ddate',
sortorder: 'asc',
viewrecords: true,
gridview: true,
caption: 'Current Assignments',
ondblClickRow: function(rowid) {
$(this).jqGrid('editGridRow', rowid,
{width:550,Height:550,recreateForm:true,closeAfterEdit:true,
closeOnEscape:true,reloadAfterSubmit:true, modal:true,mtype:'post',top:350,left: 30});}
});
jQuery.extend(jQuery.jgrid.nav, {
deltitle: '',
delcaption: 'Project Complete'
},{delicon: "ui-icon-circle-check",deltext: "Project Complete"});
$("#list").jqGrid("navGrid", "#pager", { add: false, search: false, refresh:false,edit:false }).navButtonAdd('#pager',{
caption:"Export to Excel",
buttonicon:"ui-icon-save",
onClickButton: function() {
jQuery("#list").jqGrid('excelExport', { url: 'ExportExcel.php' });
},
position:"last",
});
jQuery.extend(jQuery.jgrid.edit, {
recreateForm: true,
beforeShowForm: function ($form) {
$("<span id='mydate'></span>").insertAfter("#hello");
$("#hello").trigger("change"); // to set date
},
onclickSubmit: function() {
return {
mydate2: $("#mydate").text()
}
},
afterclickPgButtons: function() {
$("#hello").trigger("change"); // to set date
} });
// setup grid print capability. Add print button to navigation bar and bind to click.
setPrintGrid('list','pager','Current Assignments');
});
第二个选项似乎是最简单的。但我希望日期也显示在提交的列中。如果我使用这第二条路线,它将只在单元格中显示一个复选框。是他们的方式显示在单元格中,只有当我在编辑窗体中检查它的日期,并且如果未选中它将单元格留空? – NewHistoricForm 2014-09-08 20:05:35
@NewHistoricForm:对不起,但我不明白你的问题。你写了“我希望日期也显示在提交的列中”。你想在哪一列显示日期?后来你写了“如果我使用这第二条路线,它将只在单元格中显示一个复选框”。你的意思是哪个细胞?你谈论编辑表格还是关于主网格?对不起,我不能跟着你。 – Oleg 2014-09-08 20:17:24
我的意思是主电网。您的“已关闭”列仅显示带复选标记的单元格。我需要单元格显示当前日期例如“9/8/2014”时检查复选框,或者如果未选中则为空(复选框仅显示在editform中)。编辑表单的方式非常完美。 – NewHistoricForm 2014-09-08 20:29:02