';日期至';应该是'的开始;日期为';模态弹出jqgrid
Hi im在MVC中使用Jqgrid,要求如下。。在jqgrid的模型弹出窗口中添加/编辑行。。我有4列..';日期至';应该是'的开始;日期为';模态弹出jqgrid,jqgrid,mvcjqgrid,Jqgrid,Mvcjqgrid,Hi im在MVC中使用Jqgrid,要求如下。。在jqgrid的模型弹出窗口中添加/编辑行。。我有4列.. 日期自,日期至,类型,备注 我正在使用jquery日期选择器.. 我的要求 添加第一行后。。添加第二行时。。DateFrom字段(第二行)应该是先前添加行的DateTo字段的下一个日期 这是我的网格 initDateEdit = function (elem) { setTimeout(function () {
日期自,日期至,类型,备注
我正在使用jquery日期选择器..
我的要求
添加第一行后。。添加第二行时。。DateFrom字段(第二行)应该是先前添加行的DateTo字段的下一个日期 这是我的网格
initDateEdit = function (elem) {
setTimeout(function () {
$(elem).datepicker({
dateFormat: "m-d-yy",
showOn: "button",
changeYear: true,
changeMonth: true,
showButtonPanel: true,
showWeek: true
});
}, 50);
},
initDateSearch = function (elem) {
setTimeout(function () {
$(elem).datepicker({
dateFormat: "m-d-yy ",
changeYear: true,
changeMonth: true,
showButtonPanel: true,
showWeek: true
});
}, 50);
},
jQuery("#dateGrid").jqGrid({
height: 100,
width: 1000,
colNames: ['DateFrom', 'DateTo', 'Type', 'Remarks'],
colModel: [
{
name: 'DateFrom', index: 'DateFrom', width: 60, editable: true, sorttype: "date",
formatter: 'date',
formatoptions: {
srcformat: 'm/d/Y',
},
editoptions: { dataInit: initDateEdit, size: 14 },
},
{
name: 'DateTo', index: 'DateTo', width: 80, editable: true, sorttype: "date",
formatter: 'date',
formatoptions: {
srcformat: 'm/d/Y',
},
editoptions: {
dataInit: initDateEdit, size: 14,
},
},
{
name: 'Type', width: 80, editable: true, formatter: "select",
edittype: "select", editoptions: { value: "Open:Open;Maintainance:Maintainance;Closed:Closed", defaultValue: "Open" },
},
{
name: 'Remarks', index: 'Remarks', width: 80, editable: true
}
,
],
// multiselect:true,
pager: "#datePager",
loadonce: true,
sortname: 'Client',
ignoreCase: true,
sortorder: 'asc',
gridview: true,
autoencode: true,
rowNum: 10,
rowList: [5, 10, 20, 50],
caption: "Add Durations",
viewrecords: true,
editurl: "clientArray",
onSelectRow: function (id) {
var selRows = $(this).jqGrid('getGridParam', 'selarrrow');
if (selRows.length > 1) {
btnEdit.disabled = true;
btnDel.disabled = true;
}
else if (selRows.length == 1) {
btnEdit.disabled = false;
btnDel.disabled = false;
}
},
}).jqGrid("navGrid", "#datePager", { search: true, edit: false, add: false, del: false, searchtext: "Search" }, {}, {}, {
multipleSearch: true,
overlay: false,
onClose: function () {
$("div#ui-datepicker-div.ui-datepicker").hide();
}
}).jqGrid("filterToolbar", { defaultSearch: "cn" });
});
所以现在我需要访问网格中第一行的DateTo值。。并在默认值DateFrom中编写一个函数,将1添加到从DateTo获得的日期中,并将其显示在DateFrom
有人能给我一些演示/帮助,告诉我如何让这个功能正常工作吗?
谢谢 这就是我最终找到的解决方案 jQuery(“#GridId”).jqGrid({
高度:100,
宽度:1000,
colNames:['Date From','Date To','Type','comments'],
colModel:[
{
名称:“DateFrom”,索引:“DateFrom”,宽度:60,可编辑:true,sorttype:“date”,
格式化程序:“日期”,
格式选项:{
SRC格式:“m/d/Y”,
},
editoptions:{dataInit:initDateEdit,大小:14,
defaultValue:函数(){
var id=$(“#GridId”).jqGrid('getdataid');
如果(id.length>=1){
//获取第一个id
var cl=ids[0];
//获取行数据
var rowData=$(“#GridId”).getRowData(cl);
//获取单个单元格值
var celValue=$(“#GridId”).jqGrid('getCell',cl',DateTo');
var currentTime=新日期(celValue);
var month=parseInt(currentTime.getMonth()+1);
月份=第12个月)
{
月=1;
年份++;
}
返回月份+“/”+天+“/”+年;
}
返回null;
}
},
},
{
名称:“DateTo”,索引:“DateTo”,宽度:80,可编辑:true,sorttype:“date”,
格式化程序:“日期”,
格式选项:{
SRC格式:“m/d/Y”,
},
editoptions:{dataInit:initDateEdit,大小:14},
},
{
名称:“类型”,宽度:80,可编辑:true,格式化程序:“选择”,
edittype:“选择”,editoptions:{value:“占用:占用;空闲:空闲;维护:维护”,defaultValue:“占用”},
},
{
名称:“备注”,索引:“备注”,宽度:80,可编辑:true
}
,
],
//多选:对,
寻呼机:“#GridPAger”,
有一次:是的,
可排序:是的,
sortname:“客户端”,
ignoreCase:是的,
排序器:“asc”,
gridview:没错,
自动编码:正确,
rowNum:10,
行列表:[5,10,20,50],
viewrecords:是的,
editurl:“客户端阵列”,
OnSetrow:功能(id){
var selRows=$(this).jqGrid('getGridParam','selarrrow');
如果(selRows.length>1){
btnEdit.disabled=真;
btnDel.disabled=真;
}
else if(selRows.length==1){
btnEdit.disabled=false;
btnDel.disabled=false;
}
},
}).jqGrid(“navGrid”、“#GridPAger”、{search:true、edit:false、add:false、del:false、searchtext:“search”}、{}、{}、{
多重搜索:对,
覆盖:假,
onClose:function(){
//如果我们在数据采集器打开期间关闭搜索对话框
//日期选择器将保持打开状态。要解决此问题,我们必须隐藏
//日期选择器使用的div
$(“div#ui-datepicker-div.ui-datepicker”).hide();
}
}).jqGrid(“filterToolbar”,{defaultSearch:“cn”});
});
我找不到您的数据源?您使用的是本地还是从服务器?DateFrom默认值是否需要从上一个保存的行获取,还是始终从第一行获取?这用于创建。。所以没有db。。编辑时,我从数据库(服务器)获取它。。本地存储并处理它,并在创建时发送顺便说一句,我不会在网格中有任何数据。。因此,我应该让他们添加第一行。。那么第二排。。它应该是先前添加行的DateTo,第二行的默认值DateFrom应该是先前添加行的下一个DateTo日期。这是详细信息网格。。所以,点击保存按钮,我调用一个函数来发送主机(由txtboxs组成)和这个详细的网格。。。
height: 100,
width: 1000,
colNames: ['Date From', 'Date To', 'Type', 'Remarks'],
colModel: [
{
name: 'DateFrom', index: 'DateFrom', width: 60, editable: true, sorttype: "date",
formatter: 'date',
formatoptions: {
srcformat: 'm/d/Y',
},
editoptions: { dataInit: initDateEdit, size: 14 ,
defaultValue: function () {
var ids = $("#GridId").jqGrid('getDataIDs');
if (ids.length >= 1) {
//get first id
var cl = ids[0];
//fetch row data
var rowData = $("#GridId").getRowData(cl);
//fetch individual cell value
var celValue = $("#GridId").jqGrid('getCell', cl, 'DateTo');
var currentTime = new Date(celValue);
var month = parseInt(currentTime.getMonth() + 1);
month = month <= 9 ? "0" + month : month;
var day = currentTime.getDate();
day = day <= 9 ? "0" + day : day;
var year = currentTime.getFullYear();
var months= [31,28,31,30,31,30,31,31,30,31,30,31];
var ndays = months[month - 1];
if (month == 02)
{
if (year % 100 == 0)
{
if (year % 400 == 0)
ndays=29;
}
else
if (year % 4 == 0)
ndays=29;
}
day = day + 1;
if(day>ndays)
{
day = 1;
month++;
}
if (month > 12)
{
month = 1;
year++;
}
return month + "/" + day + "/" + year;
}
return null;
}
},
},
{
name: 'DateTo', index: 'DateTo', width: 80, editable: true, sorttype: "date",
formatter: 'date',
formatoptions: {
srcformat: 'm/d/Y',
},
editoptions: { dataInit: initDateEdit, size: 14 },
},
{
name: 'Type', width: 80, editable: true, formatter: "select",
edittype: "select", editoptions: { value: "Occupied:Occupied;Vacant:Vacant;Maintainance:Maintainance", defaultValue: "Occupied" },
},
{
name: 'Remarks', index: 'Remarks', width: 80, editable: true
}
,
],
// multiselect:true,
pager: "#GridPAger",
loadonce: true,
sortable:true,
sortname: 'Client',
ignoreCase: true,
sortorder: 'asc',
gridview: true,
autoencode: true,
rowNum: 10,
rowList: [5, 10, 20, 50],
viewrecords: true,
editurl: "clientArray",
onSelectRow: function (id) {
var selRows = $(this).jqGrid('getGridParam', 'selarrrow');
if (selRows.length > 1) {
btnEdit.disabled = true;
btnDel.disabled = true;
}
else if (selRows.length == 1) {
btnEdit.disabled = false;
btnDel.disabled = false;
}
},
}).jqGrid("navGrid", "#GridPAger", { search: true, edit: false, add: false, del: false, searchtext: "Search" }, {}, {}, {
multipleSearch: true,
overlay: false,
onClose: function () {
// if we close the search dialog during the datapicker are opened
// the datepicker will stay opened. To fix this we have to hide
// the div used by datepicker
$("div#ui-datepicker-div.ui-datepicker").hide();
}
}).jqGrid("filterToolbar", { defaultSearch: "cn" });
});