【发布时间】:2015-01-29 12:04:48
【问题描述】:
我正在使用光滑的网格来显示项目列表。
该列表使用$.ajax 调用jquery-ui dialog box 填充。
我需要滚动到之前选择的项目的位置。 因此,我使用以下功能来滚动和选择以前选择的项目:
function SetDefaultItemSelected() {
var selectedKey = 16; // hardcoded but there is logic to get previous item
for (var rowIndex = 0; rowIndex < myItemDataView.getLength(); rowIndex++) {
var gridRow = myItemDataView.getItem(rowIndex);
if (gridRow.Key === selectedKey) {
myItemGrid.setSelectedRows([rowIndex]);
//TODO: check why the scrollRowIntoView is not working
myItemGrid.scrollRowIntoView(rowIndex);
break;
}
}
输出是这样的:
(一共22行,我之前选了第16行) 我不确定为什么它隐藏了前 3 行而不滚动到第 16 行。
更新 1:
刚刚检查过,如果我添加按钮并将其单击事件与上述函数绑定,则滚动会神奇地起作用。 但是,我不确定在创建网格后调用该函数有什么问题? 请帮忙。
由于功能在页面上工作但不在 jquery-ui 对话框上,这可能是错误吗?
更新 2:
我创建了新的 MVC3 应用程序并尝试实现相同的东西 - 通过 $.ajax 调用 LoadData 函数并填充光滑网格,然后尝试选择默认 ID。
我意识到只有当网格在 jquery-ui 对话框中时才会出现问题。 页面上的同一个网格正常工作。
这可能是一个错误,光滑的网格滚动在页面上工作,而不是在由 ajax 调用加载的对话框中??
如果我需要分享示例代码,请帮助并告诉我。
更新 3:
添加了示例代码。任何帮助将不胜感激!
https://groups.google.com/forum/#!topic/slickgrid/CUjY3H1F_zM
【问题讨论】:
标签: jquery ajax asp.net-mvc-3 jquery-ui-dialog slickgrid