日期:2014-05-17  浏览次数:20438 次

asp.net 动态添加textbox,并且获取值
各位高手好:
 请大家帮帮忙,目的是:
同一个asp.net web页面,根据(textbox)里输入的数字,例如5,动态生成5行5列输入框
5列对应的是数据库的字段,然后完成提交给数据库,弄了3天了请各位大侠帮忙,谢谢!

------解决方案--------------------
调用时每个TextBox 取相同的name 
如:
var sjs ='';
for(i=0;i<5;i++)

sjs += '<intput id=t'+i+' name='t1' type='text' value='1' />'
}
document.all.div1.innerHTML = sjs; //动态生成
前台用 


至于后台: 
我就Request.Params["t1"].Value 接收过, 
获取的值是"1,2,3...." 
你分割一下字符串就得到了
------解决方案--------------------
貌似有点麻烦

我没做过哦

等有时间去试试
------解决方案--------------------
你的意思是生成5行5列后,你在这个表中输入数据,后在数据库创建一个一样的表?
------解决方案--------------------
没明白需求
------解决方案--------------------
可以在你想要显示生成TextBox的地方加个占位控件 
<asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>

CS:
C# code
 int nNum = 5;
        for (int i = 0; i < nNum; i++)
        {
            TextBox tx = new TextBox();
            tx.ID = "txt" + i;
            this.PlaceHolder1.Controls.Add(tx);
        }

------解决方案--------------------
给你个列子自己看看吧,网上搜得到的,动态添加
JScript code

 function addNewGoods(){           
            intTextIndex =  intTextIndex + 1 ;
              document.getElementById("<% =hidSum.ClientID %>").innerText = intTextIndex;
            var textInput="<table class='full4' cellspacing='0' borderColorDark='white' borderColorLight='#a1b5c0' cellpadding='1' border='1' width='100%'><tr>"
            +"<td align='left'>姓名</td><td><input type='text' CssClass='tbTextbox' size='20' name='TextName" + intTextIndex + "' id='Text" + intTextIndex + "' /></td>"
            +"<td align='left'>工作单位</td><td><input type='text' CssClass='tbTextbox' size='20'  name='TextMent" + intTextIndex + "' id='TextNum" + intTextIndex + "' /></td>"
            +"<td align='left'>职务</td><td><input type='text' CssClass='tbTextbox' size='20' name='TextType" + intTextIndex + "' id='TextType" + intTextIndex + "' /></td></tr></table>"
           
            document.getElementById('FileList').insertAdjacentHTML("beforeEnd",textInput);        
   }

------解决方案--------------------
探讨
给你个列子自己看看吧,网上搜得到的,动态添加
JScript codefunctionaddNewGoods(){
intTextIndex=intTextIndex+1;
document.getElementById("<% =hidSum.ClientID %>").innerText=intTextIndex;vartextInput="<table class='full4' cellspacing='0' borderColorDark='white' borderColorLight='#a1b5c0' cellpadding='1' border='1' width='100%'><tr>"+"<td align='left'>姓名</td><td…

------解决方案--------------------
能生成输入框但读不到数据吗?你是不要触发一个时间(比如说按钮)之后再提交到数据库,输入框中的数值要填上之后在提交?
可以用if(!IsPostback)啊。
不好意思,不是很理解你的意思。
------解决方案--------------------
GridView

建五个模板列

绑定到 new int[int.Parse(Textbox1.Text)]
------解决方案--------------------
我没用过我就Request.Params["t1"].Value,所以不知道在后台取值是怎么取得,不过我按照我以前做过的给你个思路