如何在 UpdatePanel 异步调用完成后重新应用 .css 文件

How to reapply .css file after UpdatePanel asynchronous call completed

我在 UpdatePanel 控件中有一个嵌套的 gridview。在我 select 行编辑之后,我需要在几个列中创建控件以选择下拉列表。我需要重新应用选择的插件和 .css 文件。我找不到可用的资源。 这是添加所选下拉列表的 javascript 函数调用:

Sys.WebForms.PageRequestManager.getInstance().add_endRequest(onEndRequest);  function onEndRequest(sender, args) {
    if (sender._postBackSettings.panelsToUpdate != null) {
       $.load
        $.getScript("~/Scripts/chosen.jquery.min.js");
        $.getScript("~/Scripts/chosen.jquery.js");
        //This append function is not working.
        $('head').append('<link href="~/Styles/chosen.css" rel="stylesheet" type="text/css" />');
        (".chosen-single").chosen({
            search_contains: true,
            width: "200px",
            no_results_text: "Sorry, no match!"
        });
    }
};

使用这个 append 函数,我仍然收到以下错误: .chosen-single 不是函数。

我正在使用 ASP.NET MasterPages,所以 head 在 Site.Master 页面上。也许问题是我需要指定 head 在哪里?

谢谢。

这应该足够了:

Sys.WebForms.PageRequestManager.getInstance().add_endRequest(onEndRequest); 

function onEndRequest(sender, args) {
    if (sender._postBackSettings.panelsToUpdate != null) {
        $("select:not(.chosen-single, .no-chosen)").chosen({
            search_contains: true,
            width: "200px",
            no_results_text: "Sorry, no match!"
        });
    }
};

您不需要再次加载 CSS 和 JS 文件,因为您之前已经加载过这些文件。