日期:2014-05-19  浏览次数:20383 次

前台动态创建的textbox,后台丢失值
前台创建代码如下:
var   tb   =   document.getElementById( "table1 ");
var   str   =   document.getElementById( "hidden1 ").value;
//拆分
var   arr_str   =   str.split( '; ');
for   (var   i   =   0;   i   <   arr_str.length;   i++)
{
        var   row   =   tb.insertRow(tb.rows.length);
        var   cell=   row.insertCell(0);
        cell.innerHTML   =   " <input   type= 'hidden '   id= 'hidden "   +   i   +   " '   value= ' "   +   arr_str[i]   +   " '/> "   +   arr_str[i];
        var   cellTxt   =   row.insertCell(1);
        cellTxt.innerHTML   =   " <input   type= 'text '   size= '10 '   id= 'txtbox "   +   i   +   " '   /> XXX ";
}

后台获取代码如下:
for   (int   i   =   0;   i   <   table1.Rows.Count;   i++)
{
        HtmlInputHidden   hidden   =   (HtmlInputHidden)table1.Rows[i].Cells[0].Controls[0];
        string   str   +=   hidden.Value   +   ": ";
        TextBox   txtbox   =   (TextBox)table1.Rows[i].Cells[1].Controls[0];
}
明明输入了值,后台的txtbox也能获得,但内容就是为空。为什么?同一个table里的hidden,就没有问题。

------解决方案--------------------
可以用ajax,也可以在画面上table以外的地方放一个hidden,点提交的时候先在前台把textbox的值存在这个hidden里。