using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;namespace 基本表维护
{
/// <summary>
/// addRecord 的摘要说明。
/// </summary>
public class addRecord : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Table myTable;
protected System.Web.UI.WebControls.Button btnAdd;
protected System.Web.UI.WebControls.Button btnCancel;
protected System.Web.UI.WebControls.PlaceHolder myph;

// 定义一个表名变量,调试用
string TableName="dd_XueKeTJ"; int strColumnCount=0;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面 string strTableName;
strTableName=TableName;
SqlDataReader mydr=null;

// 首先读取各个列
mydr=getColumnNames(strTableName);(自己写的函数,没有错误。) // 动态生成控件
while( mydr.Read() )
{
// Response.Write(mydr.GetValue(3).ToString() );
TableRow newRow=new TableRow();
Label lbl=new Label();
// lbl.CssClass=title;
lbl.Text=mydr.GetValue(3).ToString();
TableCell cellLabel=new TableCell();
cellLabel.Controls.Add(lbl); TextBox tb=new TextBox();
// tb.CssClass=input;
tb.ID="tb"+strColumnCount.ToString();
strColumnCount++;
TableCell cellTextBox=new TableCell();
cellTextBox.Controls.Add(tb);
newRow.Cells.Add(cellLabel);
newRow.Cells.Add(cellTextBox);
myTable.Rows.Add(newRow);

}
mydr.Close();

}代码如上。
想读取生成的TextBox的值,该怎样生成?
我是想在数据库中读出某个表的各个列的名字,然后每列生成一个Label和一个TextBox,然后在TextBox在里面读出来,修改数据库的值。也许我的思路就是错的。哪位知道,该怎样实现?或者给指一个新的思路。谢谢了!

解决方案 »

  1.   

    可以用FindControl找到你那个TextBox
      

  2.   

    嘿嘿
    http://aliketen.cnblogs.com/articles/363683.html
      

  3.   

    TextBox T1=(TextBox)Label的ID.FindControl(TextBox的ID)
      

  4.   

    是datalist中的模板列就可以实现,很简单。
    <datalist>
    <itemtemplate>
    <label><%#DataBinder.eval(Container.DataItem,"字段名")%></label>
    <textbox></textbox>
    </itemtemplate>
    </datalist>
    以上手写没经过测试。差不多是这个样子.
      

  5.   

    谢谢各位了!是不是必须用模板列才能实现?要是不用的话怎么办?我用了FindControl(tb+i.tostring())好像不行?是不是需要FindControl的嵌套?哪位给个实例吧,谢谢了!
      

  6.   

    如此看看嘛:
    TextBox tb=new TextBox();
    for(i=1;i<10;i++){
       tb.ID="tb"+i.ToString();
       Response.Write(tb.Text.Trim()) ;
    }