【问题标题】:Asp.net Dropdownlist selected Index not firing when using with jQuery ui select menu与 jQuery ui 选择菜单一起使用时,Asp.net Dropdownlist selected Index 未触发
【发布时间】:2014-08-13 08:44:12
【问题描述】:

当我在下拉列表中使用 jQuery-UI 选择菜单并尝试调用 selectedindexchanged 事件时,它不会触发,如果我从下拉列表中删除 select menu 的 jQuery 函数,它工作正常。

我无法解决,需要帮助。

我的实现是这样的

<asp:DropDownList runat="server" ID="ddlProjects" AutoPostBack="true" CssClass="form-control ddlStyle" OnSelectedIndexChanged="ddlProjects_SelectedIndexChanged"></asp:DropDownList>

jQuery 调用如下:

$('#<%= ddlProjects.ClientID%>').selectmenu().selectmenu("menuWidget").addClass("overflow");

后面的代码是

 protected void ddlProjectToMapped_SelectedIndexChanged(object sender, EventArgs e)
       {
           if(ddlProjectToMapped.SelectedIndex==0)
           {
               divUsersAlreadyMap.Visible = false;
               CloseDivs();
           }
           else
           {
               string selectedItemValue = ddlProjectToMapped.SelectedItem.Value;
               LoadDataInLstUserAlreadyMapped(selectedItemValue);
               OpenControls();
           }
       }

注意:当 jQuery 选择菜单函数调用被移除时,这个函数可以正常工作

【问题讨论】:

    标签: c# jquery asp.net jquery-ui jquery-ui-selectmenu


    【解决方案1】:

    selectmenu 将选择转换为自定义控件。可能您需要在 selectmenu 上挂钩 change 事件,然后从那里触发回发。

    $('#<%= ddlProjects.ClientID%>').selectmenu(change: function( event, ui ) {
    
    __doPostBack($(this), '');
    
    }).selectmenu("menuWidget").addClass("overflow");
    

    【讨论】:

    • 我在使用 SelectMenu 插件从旧的(旧版)jQueryUI 迁移到“内置”jQueryUI selectMenu.Fix 时遇到了同样的问题,并带有一个小模块:if ($(this) .attr('onchange')) { __doPostBack($(this).attr('name'), '') }
    【解决方案2】:

    首先检查是否有“onchange”属性。
    如果没有属性 -> 常规选择菜单(...)
    如果 onchange 属性-> selectmenu() 带有“更改功能”,则执行代码。 (__doPostBack 或其他)

    $('select').each(function(){
                var onchg=$(this).attr('onchange');
                if(onchg==undefined){$(this).selectmenu()}
                else{$(this).selectmenu({change:function(){eval(onchg)}});
            });
    

    【讨论】:

      猜你喜欢
      • 2016-06-24
      • 2021-10-30
      • 2016-06-05
      • 1970-01-01
      • 1970-01-01
      • 2010-10-28
      • 2013-03-18
      • 2014-03-28
      • 1970-01-01
      相关资源
      最近更新 更多