我有一堆用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);
}
}
}
答案 0 :(得分:0)
在浏览器的开发工具中查看页面的呈现HTML(例如,在使用Chrome时按F12)。您会发现,通常情况下,控件在实际呈现时,不会拥有您已分配的ID。
您需要找到渲染控件的实际ID。有关执行此操作的一些技巧的详细说明,请查看this blog post。