Я использую jqgrid, где мне нужно передать дополнительные данные в контроллер во время редактирования ... но я не могу это сделать ... вот мой код ниже ..
<script type="text/javascript">
//
var checkMileageLimit = function (value, colname) {
var clName = (colname == 'MileageLimitPM' ? 'MileageLimitAM' : 'MileageLimitPM');
if (parseInt(value) + parseInt($('#' + clName).val()) > parseInt($("#TotalMileage").val())) {
return [false, "sum of AM and PM mileage should not exceed Total Mileage", ""];
}
else return [true, "", ""];
};
var checkTouchLimit = function (value, colname) {
var clName = (colname == 'TouchLimitPM' ? 'TouchLimitAM' : 'TouchLimitPM');
if (parseInt(value) + parseInt($('#' + clName).val()) > parseInt($("#TotalTouches").val())) {
return [false, "sum of AM and PM Touches should not exceed Total Touches", ""];
}
else return [true, "", ""];
};
var lastsel;
$("#list").jqGrid({
url: '<%= Url.Action("GetScheduleInfo", "TouchSchedule") %>',
datatype: 'json',
mtype: 'GET',
postData: {
StartDate: function () { return $('#StartDate').val(); },
EndDate: function () { return $('#EndDate').val(); },
siteId: function () { return $('#ListFacility').length == 0 ? -1 : $('#ListFacility').val(); }
},
colNames: ['RowID', 'SiteID', 'CalDate', 'Store Open', 'Start Time', 'End Time',
'MileageLimit AM', 'MileageLimit PM', 'TouchLimit PM',
'TouchLimit AM', 'Total Touches', 'Total Mileage', 'WeekDay'],
colModel: [
{ name: 'RowID', index: 'RowID', width: 40, key: true, editable: true, editrules: { edithidden: false }, hidedlg: true, hidden: true },
{ name: 'SiteID', index: 'SiteID', width: 40, /* key: true,*/editable: true, editrules: { edithidden: false }, hidedlg: true, hidden: true },
{ name: 'CalDate', index: 'CalDate', width: 100, formatter: 'date', datefmt: 'm/d/Y', editable: false, formoptions: { elmsuffix: ' *'} },
{ name: 'StoreOpen', index: 'StoreOpen', width: 40, editable: true, edittype: 'select', formatter: 'select', editrules: { required: true }, formoptions: { elmsuffix: ' *' }, editoptions: { value: { o: 'Open', c: 'closed'} }, width: "40" },
{ name: 'StartTime', index: 'StartTime', width: 100, editable: true, formatter: 'date', masks: 'ShortTime', edittype: 'text', editrules: { time: true, required: true }, formoptions: { elmsuffix: ' *'} },
{ name: 'EndTime', index: 'EndTime', width: 100, editable: true, edittype: 'text', editrules: { time: true, required: true }, formoptions: { elmsuffix: ' *'} },
{ name: 'MileageLimitAM', index: 'MileageLimitAM', width: 50, editable: true, formatter: 'integer',
edittype: 'text', editrules: { custom: true, custom_func: checkMileageLimit,
required: true
}, formoptions: { elmsuffix: ' *' }
},
{ name: 'MileageLimitPM', index: 'MileageLimitPM', width: 50, editable: true, edittype: 'text', formatter: 'integer', editrules: { custom: true, custom_func: checkMileageLimit, required: true }, formoptions: { elmsuffix: ' *'} },
{ name: 'TouchLimitAM', index: 'TouchLimitAM', width: 50, editable: true, edittype: 'text', formatter: 'integer', editrules: { custom: true, custom_func: checkTouchLimit, required: true }, formoptions: { elmsuffix: ' *'} },
{ name: 'TouchLimitPM', index: 'TouchLimitPM', width: 50, editable: true, edittype: 'text', formatter: 'integer', editrules: { custom: true, custom_func: checkTouchLimit, required: true }, formoptions: { elmsuffix: ' *'} },
{ name: 'TotalTouches', index: 'TotalTouches', width: 50, editable: true, edittype: 'text', editrules: { required: true }, formoptions: { elmsuffix: ' *'} },
{ name: 'TotalMileage', index: 'TotalMileage', width: 50, editable: true, edittype: 'text', editrules: { required: true }, formoptions: { elmsuffix: ' *'} },
{ name: 'WeekDay', index: 'WeekDay', width: 200, editable: false, hidden: false }
],
pager: $('#listPager'),
rowNum: 10,
rowList: [10, 20, 30],
sortname: 'CalDate',
sortorder: "desc",
viewrecords: true,
caption: 'Schedule Calendar',
autowidth: false,
gridview: true,
id: "RowID",
ondblClickRow: function (id) {
if (id && id !== lastsel) {
jQuery('#list').jqGrid('restoreRow', lastsel);
jQuery('#list').jqGrid('editGridRow', id,{ onclickSubmit});
lastsel = id;
}
}
, editurl: '<%= Url.Action("UpdateGrid", "TouchSchedule") %>'
}).navGrid('#listPager',
{ edit: true, add: false, del: false, search: false, refresh: true },
{width:400,height:400,closeAfterEdit:true,
onclickSubmit:function(params) { var ajaxData = {};
var list = $("#list");
var selectedRow = list.getGridParam("selrow");
rowData = list.getRowData(selectedRow);
ajaxData = { CalDate: rowData.CalDate };
return ajaxData; }}
);
$('#btnSubmit').click(function () {
$("#list").clearGridData();
$("#list").trigger("reloadGrid");
});
});
//]]>
Пожалуйста, дайте мне знать, где я ошибаюсь ... также я заметил, что если я использую встроенное редактирование, то пользовательская проверка не запускается?как решить эту проблему с помощью встроенного редактирования?
заранее спасибо ...