4

http://manos.malihu.gr/jquery-custom-content-scroller/のカスタム スクロールバーを使用しています。

gridviewを含むdivで使用しています。新しい行が Gridview に追加され、サイズを超えると、スクロール バーが表示されません。

そして私は別の問題を抱えています 内部にdivがあり、ボタンを使用してそのdivの表示を切り替えています。

スクロールバーを更新できません

(function($) {
$(window).load(function() {
 $("#rightFixed").mCustomScrollbar({
scrollInertia: 150,
autoHideScrollbar: true,
updateOnBrowserResize: true,
updateOnContentResize: true,
theme: "dark-2"
 });
});
})(jQuery);

$(function () {
$("#showTax").click(function () {
$("#cartTaxDiv").slideToggle();
$(this).text($(this).text() == 'Show Tax' ? 'Hide Tax' : 'Show Tax');
$('#rightFixed').mCustomScrollbar("update");
});
});

スクロールバーの初期化イベントがあり$(window).load、ボタンのクリックが$(document).ready.

手伝って頂けますか ??

4

1 に答える 1

3

私は解決策を考え出しました。

slideToggle の場合、Update を関数に配置し、トグルで呼び出すだけです。つまり、トグルが完了したときに関数を呼び出します。

function updateScrollbar() {
    $('#rightFixed').mCustomScrollbar("update");
}

$("#showTax").click(function () {
    $("#cartTaxDiv").slideToggle(updateScrollbar); // Call the update Scrollbar after the sliding is done.
    $(this).text($(this).text() == 'Show Tax' ? 'Hide Tax' : 'Show Tax');
})

これでトグル問題は解決です。

2番目の問題 - GridViewに来ます。GrodView が更新されている場合、スクロールバーを更新する必要があります。そのため、ポストバックごとにこの関数を呼び出す必要があります。ここでは更新パネルを使用していないため、ページロードでポストバックする場合はこの関数を呼び出します。

if (IsPostBack)
{ Page.ClientScript.RegisterStartupScript(this.GetType(), "myscript", "updateScrollbar();", true); }

したがって、問題は解決しました。

于 2013-07-13T05:31:50.817 に答える