Asp Net 1.1 - 使用Jquery发出访问Asp DropDownList的问题

时间:2017-06-16 09:11:09

标签: javascript jquery asp.net

我有一堆用Jquery动态填充的下拉列表,但我试图将它们转换为Asp:DropDownLists而不是实际的纯HTML选择下拉列表,这样我就可以更容易地直接从服务器端访问和操作它们的值(所以我可以保存Session值)而不必使用Request.Form命令。由于Asp:DropDownList类具有它的特殊性,我必须调整我的代码,包括访问drop并填充它们的Javascript / Jquery函数(它们的所有id共享一个类似的命名法,但最后有不同的数字)。但是,当我尝试访问ID时,这似乎不起作用:

$('#<%= select_plan_'+i+'.ClientID %>')

我似乎总是得到这个编译错误:

  

CS1026:)预期

“我”必须在那里因为我使用“for”循环来完成所有的滴并填充它们。就像我提到的那样,所有滴的ID都有相似的命名法,但最后却有不同的数字。

这是其中一个滴定义的方式:

<asp:DropDownList runat=server id="select_plan_4" onchange=ChangePrice(this,4);SetSelectedText(4); name=select_plan_4>
...
</asp:DropDownList>

无论如何,我怎么能克服这个问题?还有更好的选择吗?提前谢谢!

更新:添加了Js功能代码。

function ChangePlan(n, control) {

                family = decodeURIComponent(window.location.search).split('=')[1];
                $('#select_plan_'+n).find('option').remove().end();
                for (var i = 1; i < data.length-1; i++) {
                    var aux = data[i].split(';');
                    if (aux[0] == family) {
                        var html='<asp:ListItem Value="'+aux[control]+'" Text="'+aux[1]+'" >'+ aux[1] +'</asp:ListItem>';
                        $('#select_plan_'+n).append(html);
                    }
                }
            }

1 个答案:

答案 0 :(得分:0)

在浏览器的开发工具中查看页面的呈现HTML(例如,在使用Chrome时按F12)。您会发现,通常情况下,控件在实际呈现时,不会拥有您已分配的ID。

您需要找到渲染控件的实际ID。有关执行此操作的一些技巧的详细说明,请查看this blog post