如何访问后面的代码中的控件值,这是由javascript动态创建的

时间:2012-04-10 14:13:42

标签: javascript asp.net code-behind

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

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

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);            
    }
}

1 个答案:

答案 0 :(得分:6)

当提交表单时,它将在Request.Form collection中,您可以在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所述,您需要一个表单元素名称。