jqGrid выделит новую добавленную строку

возможно ли выделить новую добавленную строку в jqGrid. Эффект подсветки-это что-то вроде этого Выделить Эффект

Итак, когда новая строка будет добавлена, строка будет выделена, что позволит пользователю понять, какая запись является новой.

большое спасибо!

3 ответов


Да, я использовал следующее, чтобы кратко выделить недавно добавленную строку. Это производит приятный эффект, чтобы пользователь знал, что есть новые данные, и звучит так же, как то, что вы ищете:

jQuery("#" + rowId, "#myGrid").effect("highlight", {}, 2000);

если я правильно понял, вы хотите выделить строку, добавленную в отношении редактирования формы ("+"в панели навигации). Редактирование формы поддерживает событие afterComplete, который можно использовать для добавления некоторых функций после edditing. Например, если вы хотите иметь эффект подсветки со всеми добавленными строками, вы можете использовать общую настройку для jQuery.jgrid.edit:

jQuery.extend(jQuery.jgrid.edit, {
    reloadAfterSubmit: false,
    afterComplete : function (response, postdata, formid) {
        if (postdata.oper === "add") { // highlight on "add" only
            var row = jQuery ("#"+$.jgrid.jqID(postdata.id), jQuery(this.gbox));
            row.effect("highlight", {color:"red"}, 3000);
        }
    }
});

если вы будете использовать row.effect("highlight", {}, 3000); (нет красного цвета), вы увидите эффект выделения, но немного не так ясно, потому что добавленная строка будет выбрано по умолчанию.

вы можете изменить код, чтобы использовать подсветку только для одной выбранной сетки.


какая информация у вас уже есть о строке.

у вас есть идентификатор строки? Или значение поля, которое помечено как ключ?

Он создает строку, как определено следующим образом. Обратите внимание, что идентификатор строки совпадает со значением ключа.

<TR id=11 class="ui-widget-content jqgrow ui-row-ltr ui-state-highlight" role=row aria-selected=true><TD title=11 role=gridcell aria-describedby=list2_id>11</TD><TD title=2007-10-06 role=gridcell aria-describedby=list2_invdate>2007-10-06</TD><TD title="Client 1" role=gridcell aria-describedby=list2_name>Client 1</TD><TD style="TEXT-ALIGN: right" title=600.00 role=gridcell aria-describedby=list2_amount>600.00</TD><TD style="TEXT-ALIGN: right" title=120.00 role=gridcell aria-describedby=list2_tax>120.00</TD><TD style="TEXT-ALIGN: right" title=720.00 role=gridcell aria-describedby=list2_total>720.00</TD><TD title="" role=gridcell aria-describedby=list2_note>&nbsp;</TD></TR>

Так что вы могли бы просто сделать.

$("#tblselector).find("#+KeyValue").addClass("ui-state-highlight")

Это действительно зависит от того, как строки добавляется. Вы можете использовать событие afterInsertRow, но это будет срабатывать для каждой строки по мере ее добавления в сетка. Кроме того, есть эта заметка о событии.

Примечание: это событие не срабатывает, если параметр gridview имеет значение true

Я не предлагаю изменять параметр gridview на false, если вы возвращаете много строк и столбцов, поскольку это будет иметь большое влияние на производительность.

Я бы попросил разъяснить, как строка добавляется, но не хватает очков для комментариев.