我想使用Javascript将项目添加到ASP.Net组合框

时间:2008-11-11 07:21:59

标签: asp.net javascript

我想使用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);
        }
    }

3 个答案:

答案 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));