Получение строки jqgrid при нажатии на гиперссылку

#jqgrid

#jqgrid

Вопрос:

Я столкнулся с проблемой в Jqgrid. У меня есть столбец с гиперссылкой, и при нажатии на эту гиперссылку мне нужны данные строки. Возможно ли это с помощью Jqgrid? когда я использую «getGridParam», я получаю идентификатор строки как null.

Ответ №1:

Здесь вы можете попробовать две возможности:

1) Вы можете использовать пользовательский форматировщик для создания гиперссылки и иметь пользовательский атрибут для ссылки, в которую вы вводите идентификатор строки (префикс имени пользовательского атрибута с ‘data-‘, чтобы он был совместим с html5). В качестве альтернативы вы можете вызвать функцию javascript, явно передающую идентификатор строки.

2) Вместо самого события гиперссылки попробуйте использовать событие onCellSelect в jqGrid, где вы получаете идентификатор строки и столбца выбранной ячейки, даже если это гиперссылка. Но это вызовет событие, даже если пользователь щелкнет в любом месте ячейки, а не только по ссылке !.

Комментарии:

1. Я пробовал это, но это не работает. Можете ли вы предложить пример кода.

2. конечно, я постараюсь извлечь обобщенную реализацию к завтрашнему дню.

3. PS: Можете ли вы добавить код о том, как вы создаете гиперссылку? Используете ли вы пользовательский форматировщик или какой-либо другой подход?

Ответ №2:

Я уверен, что вы уже нашли ответ на этот вопрос, но для некоторых из вас, использующих ASP.NET Веб-форма вот что я использовал.

Создайте пользовательский форматировщик и добавьте его в столбец, в котором вы хотите, чтобы отображалась ссылка: мои столбцы взяты из базы данных, поэтому я использую оператор Select:

 switch (jqGrdCol.DataField)
{
  case "xxx":
     CustomFormatter hypLinkxxx = new CustomFormatter();
     hypLinkxxx.FormatFunction = "xxxformatOperations"; --> **JavaScript Function**
     jqGrdCol.Formatter.Add(hypLinkxxx);
  break;
}
 

Затем в функции Javascript:

 function xxxformatOperations(cellvalue, options, rowObject) {
    return "<a href=somefile.aspx?xxx="   rowObject[0] >"   cellvalue   "</font></a>"
}
 

Я получаю значение столбца в виде гиперссылки.

Ответ №3:

У меня была похожая проблема, и я изучил ваш вопрос, чтобы найти решение, и я нашел решение для этого.

Решение заключается в использовании onCellSelect: function(rowid, index, contents, event)

это дает идентификатор строки и содержимое, т.Е. Содержимое ячейки, которую вы щелкнули или выбрали, поэтому вы можете получить всю строку содержимого, которая также включает вашу гиперссылку