当前位置:编程学习 > C#/ASP.NET >>

读取动态生成的Table中的textbox输入数据,然后把数据加到sql数据库中

RT
序号  姓名  工时  酬金 
____  ____  ____  ____
上面是表的样子。已经实现动态添加和删除行,现在我要把textbox中的数据insert(添加)到sql数据库中。

 protected void Page_Load(object sender, EventArgs e)
    {
        CreateTableHeader();
        if (!IsPostBack)
        {
            ViewState["rowcount"] = "1";
        }
        for (int i = 0; i < int.Parse(ViewState["rowcount"].ToString()); i++)
        {
            CreateTableRow();
        }
    }

    /// <summary>
    /// 用户数据初始化
    /// </summary>
    private void CreateTableHeader()
    {
        TableHeaderRow headRow = new TableHeaderRow();
        TableHeaderCell headCell = new TableHeaderCell();
        headCell.Text = "序号";
        headCell.Width = 10;
        headRow.Cells.Add(headCell);
        Table2.Rows.Add(headRow);

        headCell = new TableHeaderCell();
        headCell.Text = "姓名";
        headCell.Width = 88;
        headRow.Cells.Add(headCell);
        Table2.Rows.Add(headRow);

        headCell = new TableHeaderCell();
        headCell.Text = "工时";
        headCell.Width = 88;
        headRow.Cells.Add(headCell);
        Table2.Rows.Add(headRow);

        headCell = new TableHeaderCell();
        headCell.Text = "酬金";
        headCell.Width = 88;
        headRow.Cells.Add(headCell);
        Table2.Rows.Add(headRow);

    }

    void CreateTableRow()
    {
        TableRow tbleRow = new TableRow();
        TableCell tbleCell = new TableCell();

        tbleCell.Controls.Add(new LiteralControl(Table2.Rows.Count.ToString()));
        tbleRow.Cells.Add(tbleCell);

        tbleCell = new TableCell();
        TextBox Bxingming = new TextBox();
        Bxingming.Style[HtmlTextWriterStyle.Width] = "88px";
        tbleCell.Controls.Add(Bxingming);
        tbleRow.Cells.Add(tbleCell);

        tbleCell = new TableCell();
        TextBox Bgongshi = new TextBox();
        Bgongshi.Style[HtmlTextWriterStyle.Width] = "88px";
        tbleCell.Controls.Add(Bgongshi);
        tbleRow.Cells.Add(tbleCell);

        tbleCell = new TableCell();
        TextBox Bchoujin = new TextBox();
        Bchoujin.Style[HtmlTextWriterStyle.Width] = "88px";
        tbleCell.Controls.Add(Bchoujin);
        tbleRow.Cells.Add(tbleCell);

        Table2.Rows.Add(tbleRow);
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        CreateTableRow();
        ViewState["rowcount"] = int.Parse(ViewState["rowcount"].ToString()) + 1;
    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        if (Table2.Rows.Count <= 2)
            return;
        Table2.Rows.RemoveAt(Table2.Rows.Count - 1);
        ViewState["rowcount"] = int.Parse(ViewState["rowcount"].ToString()) - 1;
    }
}
数据库 SQL textbox 添加数据 asp.net --------------------编程问答-------------------- 问题是我要怎么获取生成的textbox的ID? --------------------编程问答-------------------- 这个问题应该不难吧?麻烦各位大神来帮忙解答下。。。 --------------------编程问答-------------------- 求帮忙啊~~ --------------------编程问答-------------------- "我要怎么获取生成的textbox的ID? "这个可以直接设置吧  亲 --------------------编程问答--------------------
引用 4 楼 zhuyinshengNo1 的回复:
"我要怎么获取生成的textbox的ID? "这个可以直接设置吧  亲


textbox动态生成,没法设置他的ID啊。难道ID就是 textbox1 textbox2。。。这样连续生成下去的? --------------------编程问答-------------------- TextBox tb = new TextBox();
            tb.ID = "txtTest"; --------------------编程问答--------------------
引用 5 楼 AoTuBuShiMan 的回复:
Quote: 引用 4 楼 zhuyinshengNo1 的回复:

"我要怎么获取生成的textbox的ID? "这个可以直接设置吧  亲


textbox动态生成,没法设置他的ID啊。难道ID就是 textbox1 textbox2。。。这样连续生成下去的?


你给textbox的ID自动连续生成就像textbox1 textbox2 --------------------编程问答--------------------
引用 7 楼 l137204106 的回复:
Quote: 引用 5 楼 AoTuBuShiMan 的回复:

Quote: 引用 4 楼 zhuyinshengNo1 的回复:

"我要怎么获取生成的textbox的ID? "这个可以直接设置吧  亲


textbox动态生成,没法设置他的ID啊。难道ID就是 textbox1 textbox2。。。这样连续生成下去的?


你给textbox的ID自动连续生成就像textbox1 textbox2


在用 Request.Form["textbox1"]来获取文本里的值 --------------------编程问答-------------------- CreateTableRow() 你就不能在这个方法里传个序号什么的作为id 么?CreateTableRow(int index) 
 然后每个textbox 的id 后缀 可以使用这个序号“text_”+index --------------------编程问答--------------------
引用 9 楼 zifengshen1981 的回复:
CreateTableRow() 你就不能在这个方法里传个序号什么的作为id 么?CreateTableRow(int index) 
 然后每个textbox 的id 后缀 可以使用这个序号“text_”+index

能给个直接的代码吗。实在想不出来要怎么解决 --------------------编程问答--------------------
foreach (TableRow row in Table2.Rows)
        {
            int i = 0;
            i++;
            a = "insert into GongshiTongji(序号,用工部门,用工岗位,学号,姓名,工时,酬金,学院,专业班级)values('" + i.ToString() + "','" + (Table2.FindControl("Bbumen"+i.ToString()) as TextBox).Text + "','" + (Table2.FindControl("Bgangwei"+i.ToString()) as TextBox).Text + "','" + (Table2.FindControl("Bxuehao"+i.ToString()) as TextBox).Text + "','" + (Table2.FindControl("Bxingming"+i.ToString()) as TextBox).Text + "','" + (Table2.FindControl("Bgongshi"+i.ToString()) as TextBox).Text + "','" + (Table2.FindControl("Bchoujin"+i.ToString()) as TextBox).Text + "','" + (Table2.FindControl("Bxueyuan"+i.ToString()) as TextBox).Text + "','" + (Table2.FindControl("Bbanji"+i.ToString()) as TextBox).Text + "')";
        }

这个是插入语句,提示     未将对象引用设置到对象的实例 --------------------编程问答--------------------

void CreateTableRow(int index)     
{         
TableRow tbleRow = new TableRow();         
TableCell tbleCell = new TableCell();           
tbleCell.Controls.Add(new LiteralControl(Table2.Rows.Count.ToString()));         tbleRow.Cells.Add(tbleCell);           
tbleCell = new TableCell();         
TextBox Bxingming = new TextBox();         
Bxingming.Style[HtmlTextWriterStyle.Width] = "88px"; 
//这里可以给textbox的id 赋值
   Bxingming.ID = "Bm_"+  index; 
..............
//其他的textbox都可以按照这种方式给id 赋值,注意要唯一性 

--------------------编程问答-------------------- 这个问题没有解决呀,我也遇到这样的问题,动态生成ID没问题,但取ID和ID值却没有办法实现。 --------------------编程问答--------------------
引用 13 楼 zzxxjj 的回复:
这个问题没有解决呀,我也遇到这样的问题,动态生成ID没问题,但取ID和ID值却没有办法实现。
没有。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,