<html>   
<head>   
<script type="text/javascript"> 
function   add(content){   
newline=document.all.test.insertRow();   
newline.insertCell().innerHTML='<input   type="text"   name="Trans" value="">';
}   
function   del(){   
document.all.test.deleteRow(window.event.srcElement.parentElement.parentElement.rowIndex);   
}   
</script> 
</head>
<body>   
<asp:Panel id="Panel2" style="Z-INDEX: 101; LEFT: 224px; POSITION: absolute; TOP: 24px" runat="server" Width="152px" Height="48px">
<INPUT onclick="add()" type="button" value="增加" /> 
<TABLE id=test border=1>
</TABLE>
<INPUT type="submit" value="提交" />
</asp:Panel>
</body>   
</html>   
在前台动态创建的多个text,怎么在后台的cs中取得所有text的值,并保存到数据库中?
请师傅多多指教.:(

解决方案 »

  1.   

    可以再加一个隐藏的文本框,向后台提交时,先用js把在前台创建的text的值放在隐藏的文本框内,然后再后台cs里面就可以从隐藏的文本框内读取数据了
      

  2.   

    1)加隐藏的控件,提交是先用js把文本框的值取到放入隐藏控件 在后台就可以取到了
    2)通过jq异步操作请求也可以实现
    3)提交时,做url链接传参数,跳转本页面传参数,通过后台获取也可以实现
    以上三种方式都可以实现,而且远不止这三种方法。
      

  3.   


    $("#btnSave").click(function() {
                    var b = false;
                    var arrList = Array();
                    var txtList = document.getElementsByName("addInpName");
                    for (var i = 0; i < txtList.length; i++) {
                        if ($(txtList[i]).val().length == 0) {
                            b = true;
                            break;
                        }
                        else {
                            arrList.push($(txtList[i]).val());
                        }
                    }
                    if (b) {
                        alert('存在未输入值');
                        return;
                    }
                    //hidValue隐藏域的值就是文本框的值,
                    $("#hidValue").val(arrList.toString());
                });<asp:Button ID="btnSave" runat="server" Text="保存数据" />    
        <asp:HiddenField ID="hidValue" runat="server" />
      

  4.   

    用 Request.Form[""] 试试
      

  5.   


    我在你给的代码上进行了修改,直接复制粘贴即可,然后自己看看。
    页面代码,如下:
    <html>   
    <head>   
    <script type="text/javascript">
    var i=0;
    function add(content){
        i++;
        document.getElementById("inputhidden").value = i;
        newline=document.all.test.insertRow();
        newline.insertCell().innerHTML="<input type='text' name='Trans" + i + "' value=''>";
    }
    function del(){
        if(i > 0)
        {
            document.all.test.deleteRow(i-1);
            i--;
            document.getElementById("inputhidden").value = i;
        }
    }
    </script>  
    </head>
    <body>
    <form method="post">
    <input onclick="add()" type="button" value="从末尾增加一行" /><input type='button' value='从末尾删除一行' onclick='del()'>
    <table id="test" >
    </table>
    <input type="submit" value="提交" />
    <input id="inputhidden" name="inputhidden" type="hidden" value="0" />
    </form> 
    </body>
    </html>
    后台代码如下:
    我是直接放在Page_Load事件里了,你可以根据需求修改。
    protected void Page_Load(object sender, EventArgs e)
        {
            int textCount = 0;
            textCount = Convert.ToInt32(Request.Form["inputhidden"]);
            string[] array = new string[textCount];
            for (int i = 1; i <= textCount; i++)
            {
                array[i - 1] = Request.Form["Trans" + i.ToString()];
            }
        }
      

  6.   

    谢谢大家的回答,我想再问下,遍历到的array怎么保存到数据库中的?假如我数据库中有一个存放该值的字段,能不能用代码演示一下?
      

  7.   

    前台:
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>动态添加文本框</title>    <script src="js/jquery.min.js" type="text/javascript"></script>
    后台:
     protected void Button3_Click(object sender, EventArgs e)
        {
            string[] strArr = Request.Form["test"].Split(',');
        }
        <script type="text/javascript">
            function addText() {
                var txt = $(":text:last").attr("id") //获取最后匹配;
                var number = $(":text").size(); //获取text的个数
                number++; //加一
                $("#" + txt).append("<input  type=\"text\" id=\"test" + number + "\"/>"); //在最后一个文本框后添加
                return false;
            }
            function delText() {
                var txt = $(":text:last").attr("id") //获取最后匹配;
                $("#" + txt).remove();
                return false;
            }
        </script></head>
    <body>
        <form id="form1" runat="server">
        <div>
            <input type="text" id="test1" name="test" value="aa" />
            <input type="text" id="test2" name="test" value="bb" />
            <input type="text" id="test3" name="test" value="cc" />
            <asp:Button ID="Button1" runat="server" Text="添加" OnClientClick=" return addText()" />
            <asp:Button ID="Button2" runat="server" Text="删除" OnClientClick="return delText()" />
            <asp:Button ID="Button3" runat="server" Text="提交" OnClick="Button3_Click" />
        </div>
        </form>
    </body>
    </html>
      

  8.   

    前台
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>动态添加文本框</title>    <script src="js/jquery.min.js" type="text/javascript"></script>    <script type="text/javascript">
            function addText() {
                var txt = $(":text:last").attr("id") //获取最后匹配;
                var number = $(":text").size(); //获取text的个数
                number++; //加一
                $("#" + txt).append("<input  type=\"text\" id=\"test" + number + "\"/>"); //在最后一个文本框后添加
                return false;
            }
            function delText() {
                var txt = $(":text:last").attr("id") //获取最后匹配;
                $("#" + txt).remove();
                return false;
            }
        </script></head>
    <body>
        <form id="form1" runat="server">
        <div>
            <input type="text" id="test1" name="test" value="aa" />
            <input type="text" id="test2" name="test" value="bb" />
            <input type="text" id="test3" name="test" value="cc" />
            <asp:Button ID="Button1" runat="server" Text="添加" OnClientClick=" return addText()" />
            <asp:Button ID="Button2" runat="server" Text="删除" OnClientClick="return delText()" />
            <asp:Button ID="Button3" runat="server" Text="提交" OnClick="Button3_Click" />
        </div>
        </form>
    </body>
    </html>
    后台
     protected void Button3_Click(object sender, EventArgs e)
        {
            string[] strArr = Request.Form["test"].Split(',');
        }
      

  9.   

    zhangzhen,多个字段保存是不可能的吧,因为我的text是动态创建的,不能匹配到数据库的字段中去,只能把所有的text值加起来放到一个字段去呀,是这样吗?那要怎么做呢?
      

  10.   

    我的意思是比如说text文本的是为"1,2,3" ,你用表里的 test字段存储,你是想一次把2,3,4存进去,还是把他们分开一个个的存进去
      

  11.   

            string str = Request.Form["test"]; //获取文本控值
            string sql = "insert into Person values(@Name)";//sql语句
            string conn = "Data Source=.;Initial Catalog=test;User ID=sa";//连接字符串
            SqlConnection sqlConnecion = new SqlConnection(conn);//创建数据库链接
            sqlConnecion.Open();//打开数据库链接
            SqlCommand sqlCommand = new SqlCommand(sql, sqlConnecion);//执行命令,也就是增加语句
            sqlCommand.Parameters.Add(new SqlParameter("@Name", str));//参数赋值 此@Name对应上面sql语句values处的@Name
            sqlCommand.ExecuteNonQuery();//执行操作
            sqlConnecion.Close();//关闭sql链接
    链接数据库可以用codesmith或动这2个生成相应的代码,很简单的
      

  12.   

    Codesmith下载地址http://download.csdn.net/detail/pandalct/2841515#comment
    动软下载地址http://www.maticsoft.com/
    会直接生成 增、删、改、查 模版, 然后百度一下,看看怎么使用Codesmith生成的代码