可滚动网格插件offsetWidth未定义ASP updatePanels

时间:2013-08-06 17:12:44

标签: javascript jquery gridview updatepanel scrollable

我正在尝试使我的网格视图可滚动,我的网格视图包含在更新面板中,我在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未定义的行显示grid.rows.length的值为零,这也没有捕捉到它。这让我相信在调用.scrollable()

期间某些东西正在修改网格

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

Plugin Example

1 个答案:

答案 0 :(得分:0)

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

将jQuery选择器更改为gridview ID修复了问题

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

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

可滚动插件包含以下行,用于将属性从原始gridview复制到新的header gridview,注意它不会复制id因此,id调用.scrollable()似乎成为使用插件的非官方支持方式。

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);
  }
}