在回发后重新选择

时间:2016-03-09 01:26:34

标签: javascript jquery jquery-ui jquery-chosen

我正在开发一个ASP.NET网站。我正在使用所选的jQuery下拉列表。它工作得很好。这是代码......

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

在我添加UpdatePanel后,在回发后,下拉列表不再起作用了。 (恢复到标准下拉列表。)我研究了这个问题,根据我的研究,我写了这段代码,但是没有用。

<script src="https://code.jquery.com/jquery-1.9.1.min.js" type="text/javascript"></script>
<script>
  alert("1");

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

  $(document).ready(function() {
      alert("2");
      // bind your jQuery events here initially
      $(".chzn-select").chosen(); 
      $(".chzn-select-deselect").chosen({ allow_single_deselect: true }); 
      alert("3");
  });

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

  prm.add_endRequest(function() {
      alert("4");
      // re-bind your jQuery events here
      $(".chzn-select").chosen(); 
      $(".chzn-select-deselect").chosen({ allow_single_deselect: true }); 
      alert("5");
  });

  alert("6");
</script>

请不要笑。你可以看到我写的jQuery / js不多。哈哈:)

基本上,我试图用上面的代码重新应用所选的效果。但是,现在,它甚至不会在页面的初始加载中应用该效果。你能帮我解决这个问题吗?谢谢!

1 个答案:

答案 0 :(得分:0)

1-首先在函数

中添加你的js脚本
<script type="text/javascript"> 
        function ChosenDropdown() {
            $(".chzn-select").chosen();
            $(".chzn-select").chosen({ allow_single_deselect: true }); 
        }

    </script>

2-使用ScriptManager.registerStartupScript在每个回发中注册js脚本:

protected void Page_Load(object sender, EventArgs e)
    {
        ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.GetType(), "ChosenD", "ChosenDropdown()", true);

    }

多数民众赞成, 问候