jqGrid с пользовательской гиперссылкой в ​​каждой строке

У меня есть jqGrid, где у меня есть столбец с гиперссылками на удаление для каждой строки, я просто не могу настроить гиперссылку, чтобы выполнить действие, подобное onclick=\"jQuery('#list').deleteRow('" + cl + "');, когда я использовал простую кнопку

{ name: 'act', index: 'act', width: 100, align: 'center', sortable: false}],
gridComplete: function () {
    var gr = jQuery('#list'); gr.setGridHeight("auto", true);

    var ids = jQuery("#list").jqGrid('getDataIDs');
    for (var i = 0; i < ids.length; i++) {
        var cl = ids[i];
       be = "<a href style='height:25px;width:120px;' type='button' title='Slet' onclick=\"jQuery('#list').jqGrid('delGridRow','" + cl + "',{reloadAfterSubmit:false, url:'@Url.Action("deleteRow")'});\" >Slet</>";
        jQuery("#list").jqGrid('setRowData', ids[i], { act: be });
    }
}

person Timsen    schedule 25.08.2011    source источник
comment
Есть много способов реализации, чтобы сделать то, что вам нужно. Не могли бы вы добавить свой вопрос к вашему текущему коду, который использует jqGrid. Кстати, рекомендую посмотреть как ответ и этот.   -  person Oleg    schedule 25.08.2011
comment
ну, насколько я понимаю, проблема в том, что у ‹href› нет события onclick, у него есть целевое событие, которое может отправить вас на другую страницу. я редактирую пред. опубликуйте, чтобы код был там сейчас   -  person Timsen    schedule 25.08.2011
comment
я хочу иметь ссылку вместо кнопки. но функционал должен быть одинаковым   -  person Timsen    schedule 25.08.2011


Ответы (1)


Я так понимаю, вы правы, вы должны

  1. добавьте некоторое значение к атрибуту href. Например href='#'.
  2. Вы должны вставить return false; в конце кода функции onclick. Это предотвратит поведение по умолчанию <a>.
person Oleg    schedule 25.08.2011
comment
если я удалю a перед href, то вместо ссылки появится просто текст, верните false, чтобы предотвратить запуск гиперссылки. так что теперь проблема в том, что мне нужно вызвать событие клика, так как ничего не происходит, когда я удаляю клик - person Timsen; 25.08.2011
comment
@Timsen: я не писал вам удалить <a>, я предложил добавить любое значение для атрибута href. Попробуйте это: "<a href='#' style='height:22px;width:90px;' type='button' value='Slet' onclick=\"jQuery('#list').delGridRow('" + cl + "'); return false;\" />"; - person Oleg; 25.08.2011
comment
@Timsen: я написал вам ваш предыдущий ответ о методе delGridRow. В jqGrid нет метода deleteRow. Это ваш метод, который вы написали как плагин jQuery, или вы хотели использовать некоторые стандартные методы jqGrid, такие как delGridRow или delRowData? - person Oleg; 25.08.2011
comment
@Timsen: То же, что и что? deleteRow совпадает с delGridRow или с delRowData? Где соответствующий код? Вы пробовали мои предложения? Есть ли у вас результаты, которые вам нужны? Если проблема все еще не решена, вы должны опубликовать свой текущий код, описать ожидаемое поведение и поведение, которое у вас есть в настоящее время. - person Oleg; 25.08.2011
comment
Хорошо, deleteRow — это действие внутри моего класса контроллера, которое вызывается при нажатии кнопки. Да, это тот же код. где вы помогли мне с кнопкой удаления, но теперь я решил, что ссылка вместо кнопки выглядит более стильно для моего решения. Я пробовал код. Он останавливает href для завершения действия, поэтому я получаю возможность увидеть окно удаления, где я могу выбрать, хочу ли я удалить или отменить. Но я не могу пройти мимо этих окон, так как ничего не происходит, если я нажимаю «Удалить». Событие Onclick не запускается. - person Timsen; 25.08.2011
comment
Извините, мой сгиб, так как я вижу, что код не был правильно скопирован. Я обновил код, правильно скопировав и вставив - person Timsen; 25.08.2011
comment
Я заставил это работать сейчас, это были небольшие ошибки, которые я продолжаю делать. код должен выглядеть так: be = ‹a href='#' style='height:25px;width:120px;' type='button' value='Slet' onclick=\jQuery('#list').jqGrid('delGridRow',' + cl + ',{reloadAfterSubmit:false, url:'@Url.Action(deleteRow)'} ); вернуть false;\›Слет ‹/›; - person Timsen; 25.08.2011