首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

asp.net 动态增添textbox,并且获取值

2012-07-02 
asp.net 动态添加textbox,并且获取值各位高手好:请大家帮帮忙,目的是:同一个asp.net web页面,根据(textbox

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,所以不知道在后台取值是怎么取得,不过我按照我以前做过的给你个思路



在你的Page_Load事件里添加动态生成TextBox的代码(这点很重要,因为BS页面刷新后动态生成的控件会全部消失,所以你后面的按钮事件的FindControl会找不到对应的TextBox,虽然ViewState是保存的。。。),另外每个TextBox都一定要设定唯一指定的ID,这也很重要,不然每个ViewState中的值无法正确的分配到刷新后重新生成的对应TextBox上,然后后面就是你那个提交事件了。。。。。

反正就一句话,在Page_Load事件里添加动态生成TextBox的代码
[解决办法]
用<div> 的innerHtml可以实现的,但是要写javascript,不是很麻烦,命名的话可以用 xxx_? 的形式,?就是下标
[解决办法]
对啊,用GridView进行绑定不行吗?从数据库中读出来后绑定到GridView中,然后要多少行多少列的时候就用view不就行了吗?
[解决办法]
参考:
http://www.cnblogs.com/cathsfz/archive/2006/10/31/545521.html
http://www.cnblogs.com/cathsfz/archive/2006/11/05/550985.html
http://www.cnblogs.com/cathsfz/archive/2006/11/19/564929.html
http://www.cnblogs.com/cathsfz/archive/2007/09/11/889154.html
http://www.cnblogs.com/cathsfz/archive/2008/03/24/1119465.html
http://www.cnblogs.com/cathsfz/archive/2008/03/26/1122275.html

[解决办法]
我有个比较笨的想法,上面是textbox和button1,在textbox中输入数字,点击button1触发事件跳转页面或者弹出模态窗口,for循环生产所需的textbox个数,然后再对应的插入到数据库中。不知道是不是LZ想要的结果?
[解决办法]
js,ajax
[解决办法]
楼主可以参考一下。

C# code
Page:    <table>    <tr>        <td runat="server" id="TD">        </td>    </tr>    </table>        //生成5行5列文本框        private void AddControl()         {            HtmlTable ht = new HtmlTable();            HtmlTableRow row;            HtmlTableCell cell;            for (int i = 1; i <= 5; i++)//循环行            {                row = new HtmlTableRow();                for (int j = 1; j <= 5; j++)//循环列                {                    cell = new HtmlTableCell();                    TextBox txt = new TextBox();                    txt.ID = "txt_" + j.ToString();                    cell.Controls.Add(txt);                    row.Cells.Add(cell);                }                ht.Rows.Add(row);            }            TD.Controls.Add(ht);        } 

热点排行