Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 在所选选项卡之间保持剑道网格中的滚动位置_Jquery_Asp.net Mvc_Asp.net Mvc 4_Kendo Ui_Kendo Grid - Fatal编程技术网

Jquery 在所选选项卡之间保持剑道网格中的滚动位置

Jquery 在所选选项卡之间保持剑道网格中的滚动位置,jquery,asp.net-mvc,asp.net-mvc-4,kendo-ui,kendo-grid,Jquery,Asp.net Mvc,Asp.net Mvc 4,Kendo Ui,Kendo Grid,我需要防止每次切换选项卡时剑道网格滚动到顶部,而我将剑道网格附加到选项卡条中的一些选项卡上 @(Html.Kendo().TabStrip() .Name("TabStrip") .Events(ev => ev.Select("onTabSelect")) .Items(tab => { tab.Add().Text("Derp1") .Selected(true) .Content(@<text>

我需要防止每次切换选项卡时剑道网格滚动到顶部,而我将剑道网格附加到选项卡条中的一些选项卡上

@(Html.Kendo().TabStrip()
  .Name("TabStrip")
  .Events(ev => ev.Select("onTabSelect"))
  .Items(tab =>
  {
      tab.Add().Text("Derp1")
         .Selected(true)
         .Content(@<text>
                   <div id="Derp1Append"></div>
                   <div id="multiform">
                       <div class="mainItemGridContainer" >
                           <div>
                               @(Html.Kendo().Grid(Model)
                                     .Name("DerpGrid")
                                     .Columns(columns =>
                                         {
                                             columns.Bound(p => p.Stuff);
                                         })
                                         .DataSource(dataSource => dataSource
                                         .Ajax()
                                         .Read(read => read.Action("PopulateDerp", "Item")
                                         .Events(ev => ev.Error("onErrorDerpGrid"))
                                          )
                                     .Events(ev => ev.Change("onDerpChange"))
                               )
                           </div>
                       </div>
                   </div>
                   <div>
                       //abbreviated
                   </div>
               </text>);
          tab.Add().Text("Derp2")
             .Enabled(true)
             .Content(@<text>
                <div id="Derp2Append"></div>
                     //abbreviated
                </text>);
          tab.Add().Text("Derp3")
             .Enabled(false)
             .Content(@<text>
                <div id="SystemUsageAppend"></div>
                     //abbreviated
                </text>);
      }))
我希望能够保持网格的滚动位置与单击新选项卡之前的位置相同,因此强制网格不要每次都滚动到顶部。你认为这实际上可能吗

####编辑####


保持简短。我想在选项卡选择之间保持网格的位置,因为它会自动滚动到顶部。另一方面,解决方案还可能涉及在选择选项卡后滚动到列表中的选定项(网格已经滚动到顶部)。

下面是一篇堆栈溢出文章,介绍如何滚动到选定项。

它被绑定到onChange事件,但是您可以将它绑定到onContentLoad事件,然后它将在每次加载网格时滚动

//    bind to 'change' event
function onContentLoad(e) {

    //    animate our scroll
    $("#DerpGrid").find(".k-grid-content").animate({  // use $('html, body') if you want to scroll the body and not the k-grid-content div
        scrollTop: this.select().offset().top  //  scroll to the selected row given by 'this.select()'
     }, 400);
}
我不确定

$("#DerpGrid").find(".k-grid-content")

适用于您正在使用的剑道版本,但是你可以使用firebug或Telerik的文档来确保你有正确的元素。

每个选项卡的网格是相同的还是你试图记住每个选项卡上不同网格的位置?基本上是相同的网格,因为我只是将网格从另一个选项卡上拆下并附加到另一个选项卡上。问题是,每次我移动网格时,列表都会重置到列表的顶部(滚动到顶部)。因此,如果我选择了列表中的底部元素,当我将网格附加到另一个选项卡时,它将不可见。这不是什么大问题,只是每次切换tab时滚动到所选元素会让人沮丧;)是否可以将网格移出选项卡?您可以使用“侦听选项卡的激活事件”来修改选项卡上的任何其他内容,并保持网格不变?
$("#DerpGrid").find(".k-grid-content")