2

如何访问由 JavaScript 动态创建的控件(在 CodeBehind 中)的值?

我使用以下代码动态创建了控件:

var counter = 0;
var words;
var foo;//span tag 

function add(i) {
    var counter = 0;
    var words;
    var foo;//span tag asp in page where the controls to be added

    if (i == 'ad') {
        counter++;
        //Create an input type dynamically.
        foo = document.getElementById("dynamic")
        tbnam = document.createElement("input")  //textbox
        tbdes = document.createElement("input")  //textbox
        lbnam = document.createElement("Label")
        lbdes = document.createElement("Label")
        before = document.createElement('br')
        after = document.createElement('br')

        //Assign different attributes to the element.
        wordsnam = document.createTextNode("Item")
        wordsdes = document.createTextNode("Descrip")
        tbnam.setAttribute("type", "TextBox");
        tbdes.setAttribute("type", "TextBox");
        tbnam.setAttribute("Id", "tbdynamicnam" + counter);
        tbdes.setAttribute("Id", "tbdynamicdes" + counter);
        lbnam.setAttribute("Id", "lbdynamicnam" + counter);
        lbdes.setAttribute("Id", "lbdynamicdes" + counter);
        before.setAttribute("Id", "bf" + counter);
        after.setAttribute("Id", "af" + counter);

        lbnam.appendChild(wordsnam)
        lbdes.appendChild(wordsdes)

        //Append the element in page (in span).

        foo.appendChild(before);
        foo.appendChild(lbnam);
        foo.appendChild(tbnam);
        foo.appendChild(lbdes);
        foo.appendChild(tbdes);
        foo.appendChild(after);            
    }
}
4

1 回答 1

6

提交表单后,它将位于Request.Form 集合中,您可以在 Request 对象中最简单地访问它,该对象将检查所有集合(QueryString、Form、Cookies 和 ServerVariables)

JavaScript:

tbnam = document.createElement("input")  //textbox       
tbnam.setAttribute("type", "TextBox");       
tbnam.setAttribute("Id", "tbdynamicnam" + counter);
tbnam.setAttribute("name", "tbdynamicnam" + counter);

代码隐藏:

string newval = Request["newelementname"];

正如下面James Montagne所述,您将需要一个表单元素名称。

于 2012-04-10T14:17:52.483 回答