0

グリッドビューをスクロール可能にしようとしています。グリッドビューは更新パネルに含まれており、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)

grid.rows.lengthしかし、offsetWidth undefined の行が値がゼロであることを示していたにもかかわらず、これはそれをキャッチしませんでした。これにより、.scrollable() の呼び出し中に何かがグリッドを変更していると信じるようになりました。

申し訳ありませんが、jQuery から元のプラグイン リンクを見つけることができませんが、使用例を次に示します。

プラグインの例

4

1 に答える 1

0

jQueryセレクターがCSSクラス名識別子を使用していたため、同じクラスで別のグリッドビューを作成することにより、プラグインが混乱していることを発見しました(グローバル名前空間のオブジェクトを変更することによる再帰エラーのように)

jQuery セレクターを gridview ID ごとに変更すると、問題が修正されました

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

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

スクロール可能なプラグインには、元のグリッドビューから新しいヘッダー グリッドビューに属性をコピーするための次の行が含まれていidます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 に答える