0

我试图让我的 gridviews 可滚动,我的 gridviews 包含在更新面板中,我在 pageLoad() 中调用以下函数

function LoadScrollPopupOverridesBehavior() {
    $('.GridViewPopupWithOverride').Scrollable({
        ScrollHeight: 350,
        Width: 733
    });
    $('.GridViewPopupWithoutOverride').Scrollable({
        ScrollHeight: 350,
        Width: 733
    });
}

在来自另一个 updatePanel 的一些 updatePanel 部分回发之后,jQuery scrollableGridPlugin 给出了一个错误 offsetWidth undefined,我试图通过抢先检查来解决这个问题

if(grid.rows.length>0)

但这并没有抓住它,即使 offsetWidth undefined 的行显示 for 的值grid.rows.length为零。这让我相信在调用 .scrollable() 期间,有些东西正在修改网格

抱歉,我无法从 jQuery 中找到原始插件链接,但这里是它的使用示例

插件示例

4

1 回答 1

0

我发现因为我的 jQuery 选择器使用了 CSS 类名称标识符,所以插件变得混乱,通过创建另一个具有相同类的 gridview(几乎就像通过修改全局命名空间中的对象而导致的递归错误)

将 jQuery 选择器更改为 gridview ID 解决了这个问题

function LoadScrollPopupOverridesBehavior() {
$('#MainContent_GridViewPopupWithOverride').Scrollable({
    ScrollHeight: 350,
    Width: 733
});

$('#MainContent_GridViewPopupWithoutOverride').Scrollable({
    ScrollHeight: 350,
    Width: 733
});
}

可滚动插件包括以下行,用于将属性从原始网格视图复制到新的标题网格视图,请注意它不会复制id因此,调用 .scrollable()id似乎是使用插件的非官方支持的方式。

for (i = 0; i < grid.attributes.length; i++) {
  if (grid.attributes[i].specified && grid.attributes[i].name != "id") {
    table.setAttribute(grid.attributes[i].name, grid.attributes[i].value);
  }
}
于 2013-08-06T17:12:44.380 回答