Я использую JQGrid со службой json для отображения всей информации о членстве пользователей базы данных, поэтому URL-адрес сетки указывает на мою службу и метод json. Пока все работает нормально, я могу добавлять и редактировать пользователей и вносить изменения в данные, и это прекрасно сохраняет. Однако удаление пользователя БД - это еще одна история, поскольку Membership.DeleteUser принимает имя пользователя в качестве параметра. Кажется, JQGrid передает редактируемые параметры только в режиме добавления или редактирования. Но когда вы пытаетесь удалить, это не позволяет вернуть какие-либо параметры, что я нахожу очень странным. Я только начал использовать JQGrids, так что я мог быть толстым :-). Может кто-нибудь сказать мне, как это сделать? У меня есть имя пользователя в виде столбца в самой JQGrid. Я пробовал разные вещи на сегодняшний день:
url: 'misc / myservice.svc / AddEditDeleteGridRow? UserName =' + $ ('# MyGridTbl'). GetCell ('selrow', 'UserName')
в разделе удаления navGrid. Я также попытался установить URL-адрес в событии выбора строки, но я обнаружил, что требуется перезагрузка, чтобы вставить его в сетку, и когда это происходит, выбранная строка теряется и таким образом побеждает объект. Мне просто нужно иметь возможность получить доступ / получить имя пользователя внутри службы json, чтобы передать его в Membership.DeleteUser. Я искал в интернете и, похоже, ничего не нашел.
Вот JQGrid, который я использую. Там сервис json в основном имеет только GetData, который возвращает JQGridJSONData (набор данных объекта json) и AddEditDeleteGridRow, оба являются публичными. Все данные столбца отправляются в службу json для добавления и редактирования, но для операции удаления ничего не отправляется.
Просто чтобы уточнить, мне нужно имя пользователя на стороне сервера в службе json.
$('#MyGrid').jqGrid({
url: 'Misc/MyjsonService.svc/GetData',
editurl: 'Misc/MyjsonService.svc/AddEditDeleteGridRow',
datatype: 'json',
colNames: ['UserId', 'UserName', 'Email Address', 'Password Last Changed', 'Locked'],
colModel: [
{ name: 'UserId', index: 'UserId', hidden:true, editable: true, editrules:{edithidden: true}},
{ name: 'UserName', index: 'UserName', editable: true, width: 200, sortable: false, editrules: { required: true} },
{ name: 'Email Address', index: 'Email', editable: true, width: 500, sortable: false, editrules: { email: true, required: true} },
{ name: 'Password Last Changed', index: 'LastPasswordChangedDate', editable: false, width: 200, sortable: false, align: 'center' },
{ name: 'Locked', index: 'IsLockedOut', sortable: false, editable: true, edittype: "checkbox", formatter: 'checkbox', align: 'center' }
],
rowNum: 20,
hidegrid: false,
rowList: [20, 40, 60],
pager: $('#MyGridPager'),
sortname: 'UserName',
viewrecords: true,
multiselect: false,
sortorder: 'asc',
height: '400',
caption: 'Database Users',
shrinkToFit: false,
onPaging: function(pgButton) {
this.DBUserId = null;
},
onSelectRow: function(Id) {
if (Id && Id !== this.DBUserId) {
this.DBUserSelect(Id);
}
},
loadComplete: function() {
if (this.DBUserId)
this.DBUserSelect(this.DBUserId, true);
},
gridComplete: function() {
var grid = $('#MyGrid');
var body = $('#AvailableDBUsersArea');
if ((grid) && (body)) {
grid.setGridWidth(body.width() - 10);
//keep the grid at 100% width of it's parent container
body.bind('resize', function() {
var grid = $('#MyGrid');
var body = $('#AvailableDBUsersArea');
if ((grid) && (body)) {
grid.setGridWidth(body.width() - 2);
}
});
}
}
}).navGrid('#MyGridPager',
{ add: true, edit: true, del: true, refresh: false, search: false }, //general options
{
//Options for the Edit Dialog
editCaption: 'Edit User',
height: 250,
width: 520,
modal: true,
closeAfterEdit: true,
beforeShowForm: function(frm) { $('#UserName').attr('readonly', 'readonly'); },
beforeShowForm: function(frm) { $('#UserId').removeAttr('readonly'); },
beforeShowForm: function(frm) { $('#UserId').attr('readonly', 'readonly'); }
},
{
//Options for the Add Dialog
addCaption: 'Add User',
height: 250,
width: 520,
modal: true,
closeAfterAdd: true,
beforeShowForm: function(frm) { $('#UserName').removeAttr('readonly'); },
beforeShowForm: function(frm) { $('#UserId').removeAttr('readonly'); },
beforeShowForm: function(frm) { $('#UserId').attr('readonly', 'readonly'); }
},
{
//Delete options
width: 350,
caption: 'Delete User',
msg: 'Are you sure you want to delete this User?\nThis action is irreversable.'
},
{} //Search options
);