我想使用Javascript将一个项目添加到ASP.Net组合框中。我可以检索ID(无主页)。如何从Javascript向组合框添加值?我现在的代码看起来像这样。
//Fill the years (counting 100 from the first)
function fillvarYear() {
var dt = $('#txtBDate').val();
dt = dt.toString().substring(6);
var ye = parseInt(dt);
//Loop and add the next 100 years from the birth year to the combo
for (var j = 1; j <= 100; j++) {
ye += 1; //Add one year to the year count
var opt = document.createElement("OPTION");
opt.text = ye;
opt.value = ye;
document.form1.ddlYear.add(opt);
}
}
答案 0 :(得分:1)
永远记住,ASP.NET控件并不“花哨” - 它们总是在某些时候成为标准的HTML元素。
尝试查看this site。它有一个非常好的演示和概述。但请注意,您在客户端更改数据 - 这意味着您需要在每个请求上执行此操作,因为ViewState不会更新。
TBH,你最好只使用HTML控件而不是ASP ComboBox ..
我可以问你为什么要通过Javascript更改项目吗? (出于好奇):))
答案 1 :(得分:1)
要查看回发的值:
string selectedValue = Request.Params[combobox.UniqueId]
请记住,使用javascript更改组合框中的值会导致抛出事件验证异常,这通常是一个坏主意,因为您必须明确禁用事件验证。
我建议将组合框放在更新面板中,这样您就可以在服务器上读取txtBirthDate并生成相应的数据。然后,您不必手动保留状态。
答案 2 :(得分:0)
我找到了一个可能的解决方案。我不知道为什么早期的代码对我不起作用,但下面的行
document.form1.ddlYear.appendChild(new Option(ye,ye));