JavaScript无法在ModalPopupExtender中获取下拉选择的索引

时间:2012-12-30 09:45:09

标签: c# asp.net ajaxcontroltoolkit modalpopupextender

我有一个ModalPopupExtender,在UpdatePanel中有多个下拉列表,我使用JavaScript打开一个页面并在查询字符串中传递参数。

下拉列表选择的索引始终设置为0(ModalPopupExtender启动时的初始值)。

任何帮助?

JS功能

function openInterfacePage() {
    var url = "Interface.aspx?";
    if ($('#<%= DDLPOP.ClientID %>').prop("selectedIndex") > 0) {
        url += "pop=" + $('#<%= DDLPOP.ClientID %> option:selected').val().trim();
    }
    if ($('#<%= DDLDevicePOPUP.ClientID %>').prop("selectedIndex") > 0) {
        url += "&device=" + $('#<%= DDLDevicePOPUP.ClientID %> option:selected').val().trim();
    }
    if ($('#<%= DDLDeviceInterface.ClientID %>').prop("selectedIndex") > 0) {
        url += "&interface=" + $('#<%= DDLDeviceInterface.ClientID %> option:selected').val().trim();
    }
    window.open(url, "mywindow", "toolbar=0,titlebar=0,status=0,resizable=0,menubar=0,location=1, width=920,height=500");
}

prop(“selectedIndex”)总是= 0,我认为javascript无法识别回发后发生的变化。

1 个答案:

答案 0 :(得分:0)

我发现了这背后的原因,我发布它以防其他人面临同样的问题。

我将我的代码放在用户控件中,并且javascript函数位于同一个用户控件中,因此页面中有相同功能的不同副本(页面中使用用户控件的数量相同)。

所以我从用户控件中删除了这些函数并将其放在页面中,所以现在只有该函数的一个副本。并将下拉列表控件的ID作为参数传递给函数。