自动发布回asp.net后如何重新加载脚本?

时间:2019-03-16 05:32:03

标签: javascript c# jquery css asp.net

我在javascript中使用了搜索下拉列表。如果页面自动回发,搜索下拉列表将变为普通下拉列表

<link href="Styles/chosen.css" rel="stylesheet" />

<script src="Scripts/jquery.min.js" type="text/javascript"></script>     
<script src="Scripts/chosen.jquery.js" type="text/javascript"></script>

<asp:DropDownList ID="ddl_patientname" runat="server" class="chzn-select dropdown" OnSelectedIndexChanged="ddl_patientname_SelectedIndexChanged1">
</asp:DropDownList>

<script>
    $(".chzn-select").chosen();
    $(".chzn-select-deselect").chosen({ allow_single_deselect: true });
</script>

1 个答案:

答案 0 :(得分:1)

请尽量将DropDownList放在更新的面板之外。 您可以在更新面板中添加下拉列表触发器,例如:

<Triggers>
     <asp:AsyncPostBackTrigger ControlID="ddl_patientname" EventName="SelectedIndexChanged" />
</Triggers>

如果没有,则可以使用以下代码:

function populateChosonDdl()
{
   $(".chzn-select").chosen(); 
   $(".chzn-select-deselect").chosen({ allow_single_deselect: true });
}
$(document).ready(function () { 
    populateChosonDdl();
});

var prm = Sys.WebForms.PageRequestManager.getInstance();
if (prm) {
    prm.add_endRequest(function () {
        populateChosonDdl();
    });
}

这应该使下拉列表上的自定义保持完整。