在asp.net中使用updatePanel后,DropDownList会失去其属性

时间:2018-07-29 21:13:34

标签: javascript c# asp.net

我有以下代码在asp.net中具有智能下拉列表,以在其中具有搜索属性

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

问题在于,每当我以这种方式使用updatepanel时:

<asp:UpdatePanel ID="UpdatePanel1" runat="server" >
    <ContentTemplate>
        <fieldset>
        </fieldset>
    </ContentTemplate>
</asp:UpdatePanel>  

之后:它失去了属性,并作为正常的下拉列表返回。知道如何解决此问题并使更新面板不将下拉列表重新创建为其以前的属性吗?

1 个答案:

答案 0 :(得分:1)

在UpdatePanel更新之后,您需要再次执行该脚本。由于DOM仍然更改,并且浏览器丢失了脚本绑定。您可以为此使用PageRequestManager

<script type="text/javascript">

    var prm = Sys.WebForms.PageRequestManager.getInstance();

    //for after an updatepanel update
    prm.add_endRequest(function () {
        buildDropDownList();
    });

    //for normal page load
    buildDropDownList();

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