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



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

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

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

CS1026: ) 预期

">

i"必须在那里,因为我正在使用"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);
}
}
}

在浏览器的开发工具中查看页面呈现的 HTML(例如,在使用 Chrome 时按 F12)。你会看到,通常控件在实际呈现时没有你为其分配的 ID。

需要查找呈现的控件的实际 ID。有关执行此操作的一些技术的良好描述,请查看此博客文章。

最新更新