2010-05-31 101 views

回答

15

是的,我已经使用以下来简要地突出显示一个新添加的行。它产生了很好的效果,让用户知道有新的数据,并且听起来就像你在找什么:

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

谢谢贾斯汀 - 没有在jqGrid文档中看到这个 - 我应该添加它吗? – 2010-09-28 19:45:08

+0

不需要,这实际上是jQuery本身的一部分 - http://docs.jquery.com/UI/Effects – 2010-09-28 21:02:43

+0

干杯!正在寻找这个+1 – Damien 2011-06-08 12:10:46

1

你对这行有什么信息。

你有行ID吗?或者标记为关键字的字段的值?

它创建了像这样定义的行。请注意,该行的id与键值相同。

<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,如果你正在返回很多行和或列,因为它这个事件不火将会有很大的性能影响。

我会要求澄清如何添加行,但没有足够的评论点。

2

如果我理解你纠正你想强调对于形式编辑的(加了一行” +“在导航栏中)。表单编辑支持一个事件afterComplete,您可以使用它来添加一些后编辑功能。例如,如果你想有突出显示效果包含所有行补充道,那么你可以使用一般设置为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);(无红色),你会看到突出的效果,但有点不太清楚,因为添加的行将被默认选中。

您可以修改代码以仅为选定的一个网格使用突出显示。