2016-02-09 6 views
0

У меня есть JQGrid с кнопкой для каждой строки, нажатие кнопки должно открыть окно с маленьким диалоговым окном, содержащее страницу edit.jsp. Я попытался с помощьюJqgrid Открыть другую страницу при нажатии пользовательской кнопки редактирования

$("#list").on("click", "#apri", function(){     
      var id =sessionStorage.getItem("idProdotto"); 
      $("#list").jqGrid('editGridRow', id, {height:280,url:"http://localhost:8080/SaGE2/prodotti/edit" ,reloadAfterSubmit:false});     
     }); 

но URL полностью игнорируется, используя его без URL может быть и речи, так как нормальный DialogBox, который открывается с помощью editGridRow имеет поля ввода, но не загружает значения строки, в которой находится кнопка.

Я собираюсь постом форматера для кнопки, так как здесь вы можете увидеть использование sessionStorage

function bottone (cellvalue, options, rowObject) 
     {   
      return "<div style='margin-bottom: 5px; margin-top: 5px;'>" + 
      "<button id='apri' onclick="+sessionStorage.setItem("idProdotto", rowObject.id)+"> Apri </button></div>"; 

     } 

ответ

1

Вы никогда не должны размещать одинаковые значения идентификаторов для более как один из элементов на странице (см id='apri' для всех кнопок).

Мне кажется, что вы должны использовать предопределенные formatter: "actions" с опцией formatoptions: { editformbutton: true }. См. Пример the demo. Другие опции editGridRow могут быть указаны в зависимости от версии jqGrid и используемой вами вилки. В случае использования бесплатного jqGrid вы можете указать все параметры внутри параметра formEditing. См. the wiki article для более подробной информации. В случае использования старой версии jqGrid вы можете использовать опционы внутри свойства editOptionsformatoptions (см. the documentation).

Free jqGrid позволяет создавать пользовательские кнопки в действиях форматирования. См. the answer.

Если вам действительно нужно использовать пользовательский форматтер, то я бы рекомендовал вам прочитать the answer и this one, в котором показано использование обратного вызова beforeSelectRow.

+0

Я нашел систему, в которой я работал, но все, что она делает, дает мне идентификатор последней записи таблицы, есть ли способ получить именно идентификатор той кнопки, из которой была нажата строка? – Malignus

+1

@Malignus: Извините, но я не мог понять, какую кнопку вы имеете в виду. Что вы пытаетесь реализовать? Я полагаю, что вы ошибетесь, пытаясь использовать 'onclick' или' $ ("# list"). On ("click", ,,, '.Это неэффективно. Вам не нужно регистрировать дополнительный клик обработчик и просто используйте 'beforeSelectRow' вместо **, если вы используете пользовательский форматтер **. Если вы будете использовать' actionsNavOptions.custom' (см. [ответ] (http://stackoverflow.com/a/29735149/315935)), тогда вам нужно просто определить значок для вашего пользовательского buttom и вашего обратного вызова 'onClick'.« Параметры »обратного вызова содержат все, что вам нужно. – Oleg

+0

Я дал кнопкам одинаковый идентификатор, но разные имена, указав идентификатор строки как имена , и использовал имя кнопки, чтобы получить идентификатор строки, я надеюсь, что это не особо мусор, так или иначе я дам upvotes для помощи – Malignus

Смежные вопросы