Bootstrap 无法使用 UpdatePanel

Bootstrap not working with UpdatePanel

我有一个 ASP.NET 应用程序,它使用 bootstrap 作为前端框架。我将通过 ScriptBundle 捆绑我正在使用的库,如下所示:

bundles.Add(new ScriptBundle("~/bundles/masterPageScripts").Include(
        "~/Theme/plugins/jQuery/jQuery-2.2.0.min.js",
        "~/Theme/bootstrap/js/bootstrap.min.js",
        "~/Scripts/bootstrap-select.min.js",
        ....
    ));

然后我有一个 ListView,我想将它放在 UpdatePanel 中,这样它就不会刷新整个页面。 ListView 看起来像这样:

当我点击“+”图标时,下拉列表将消失:

我尝试再次调用 pageLoad 函数中的 bundles 但它似乎不起作用。

<script type="text/javascript">
    // Reload js on partial postback
    function pageLoad(sender, args) {
        if (args.get_isPartialLoad()) {
            jQuery.ajax({
                type: "GET",
                url: '<%: Scripts.Url("~/bundles/masterPageScripts") %>',
                dataType: "script",
                cache: true
            });
        }
    }
</script>

有什么想法吗?

pageLoad$(document).ready 仅在页面初始加载时调用,而不是在异步回发(UpdatePanel 内的内容更新)之后调用。为此,您需要 PageRequestManager

<script>
    var requestmanager = Sys.WebForms.PageRequestManager.getInstance();

    requestmanager.add_endRequest(function () {
        if (args.get_isPartialLoad()) {
            jQuery.ajax({
                type: "GET",
                url: '<%: Scripts.Url("~/bundles/masterPageScripts") %>',
            dataType: "script",
            cache: true
        });
    }
    });
</script>

看起来没有必要加载脚本。我需要做的是重新加载 selectpicker.

我是这样解决的:

<script type="text/javascript">
    function pageLoad(sender, args) {
        if (args.get_isPartialLoad()) {                
            $('#<%= updtPnlBran.ClientID %> .selectpicker').selectpicker();
        }
    }
</script>