按id/键滚动到jqgrid项

按id/键滚动到jqgrid项,jqgrid,Jqgrid,我有一个jqgrid宽度多页。每一行都有一个唯一的id。是否有直接滚动到行id 1234的功能 您可以使用setSelection选择一个ID滚动到该行,但前提是它位于当前页面上。我发现您的问题非常有趣,因此我准备了相应的解决方案 您可以在下拉框中选择行,然后单击“按id选择行”按钮。如果指定行位于当前页面上,则将使用setSelection方法选择该行。如果该行位于另一页上,则将计算该行的新页码,并使用预先选择的指定行重新加载网格。我使用描述的重载网格的current:true选项 使用loa

我有一个jqgrid宽度多页。每一行都有一个唯一的id。是否有直接滚动到行id 1234的功能


您可以使用setSelection选择一个ID滚动到该行,但前提是它位于当前页面上。

我发现您的问题非常有趣,因此我准备了相应的解决方案

您可以在下拉框中选择行,然后单击“按id选择行”按钮。如果指定行位于当前页面上,则将使用setSelection方法选择该行。如果该行位于另一页上,则将计算该行的新页码,并使用预先选择的指定行重新加载网格。我使用描述的重载网格的current:true选项

使用loadonce:true非常重要,它允许将多个行保存为一页。在这种情况下,网格的工作方式类似于具有datatype:local的网格,其数据参数由第一次加载时从服务器返回的数据定义

对于选择的实现,我使用中描述的方法。我覆盖jqGrid使用的方法中内部$.jgrid.from的select方法的子类,以便最后一次完整排序和筛选的本地数据保存在新的内部变量LASTSELECT中。它允许访问完整的数据集,而不是当前页面。只有在执行slice from之后,才包含来自而不是当前页面的数据

演示代码最重要的部分如下:

var mydata=[…], $grid=$list, oldFrom=$.jgrid.from, lastSelected,i,n,$id,id; //子类$.jgrid.from方法并保存最后一个 //在最后选定的变量中选择结果 $.jgrid.from=函数源,initalQuery{ var result=oldFrom.callthis,source,initalQuery, old_select=result.select; result.select=函数f{ lastSelected=old_select.callthis,f; 返回上次选中的; }; 返回结果; }; //创建网格 $grid.jqGrid{ 数据类型:本地, 数据:mydata, ... loadComplete:函数{ this.p.lastSelected=lastSelected;//设置this.p.lastSelected } }; ... //用数据中的所有ID填充select $ids=$selectedId; 对于i=0,n=mydata.length;i=l{ $grid.jqGridresetSelection; 警报由于当前筛选器的原因,无法看到id=+idToSelect+。; } } };
我发现你的回答也很有趣。我想知道这是否也适用于树网格?特别是当我要滚动到的行位于嵌套的深处,而不是打开折叠的节点时。是否也可以展开节点和父节点,以使行清晰可见?@Ali:こんにちは. 当前答案是为具有多个页面的网格创建的。无法直接在另一个页面上选择行,因此我在这里演示了如何检测具有所需行的页面,将网格重新加载到页面并最终选择行。TreeGrid只能在一页上。因此,实施将完全是另一回事。尽管如此,它还是可以实现的。おはようございます オレぐ様 早上好,俄勒冈萨马。在你的回答中看到日语是一个惊喜。我将为此发布一个新问题,因为我想如果你能抽出时间回答,这对其他许多人也会有帮助。非常感谢您的帮助。
var mygrid = $("#list").jqGrid({
    url: 'get_sql_json.php',
    datatype: "json",
    mtype: "GET",
    pager: "#pager",
    rowNum: 100,
    rowList: [100, 200, 500],
    autoencode: true,
    autowidth: true,
    sortorder: "desc",
    shrinkToFit: true,
    viewrecords: true,
    loadonce: true,
    gridview: true,
    autoencode: true
    });