比如如下代码,我要怎么样在后台中遍历TEXTBOX的值,我弄了好久都没弄好
大家帮忙整哈看看,感激不尽 
                 <asp:DataList ID="DataList1" runat="server" DataKeyField="ID" Height="553px" Width="667px">
                      <ItemTemplate>
<asp:TextBox ID="Tanswer" runat="server" Text='<%# Eval("answercontent") %>' ></asp:TextBox>
                      </ItemTemplate>
                  </asp:DataList>

解决方案 »

  1.   

    private void btnSubmit_Click(object sender, System.EventArgs e)
    {
    foreach(DataListItem d in DataList1.Items)
    {
    TextBox t = (TextBox)dgi.FindControl("Tanswer");
    if(t != null)
    {
    // t.Text得到文本框的值
    //DataList1.DataKeys[d.ItemIndex].ToString() 得到当前行主键值,记得最好提前设置好DataList的DataKeyField
    }
    }

    }
      

  2.   

    高歌大哥,你的方法我试了一下,但是t.Text得到的值总是System.Web.UI.WebControls.TextBox
    主键值到是能够得到,不明白是怎么回事,麻烦再帮哈我!!
      

  3.   

    plz check your codes again.
      

  4.   

    前台部分代码: 
                         <ItemTemplate>
                                  <asp:TextBox ID="Tanswer" runat="server" Text='<%# Eval("answercontent") %>' Height="64px" TextMode="MultiLine" Width="511px"></asp:TextBox
                          </ItemTemplate>
    后台部分代码:
            foreach (DataListItem d in DataList1.Items)
            {
                TextBox t = (TextBox)d.FindControl("Tanswer");
                if (t != null)
                {
                    Response.Write(t.Text);//得出结果全部是"System.Web.UI.WebControls.TextBox"
                    Response.Write(DataList1.DataKeys[d.ItemIndex].ToString());//能得出正确的值
                }
            }
      

  5.   

    // 给你对照我的案例,虽然是2003,但应该差不多
    <form id="Form1" method="post" runat="server">
    <asp:Button id="Button1" runat="server" Text="Button"></asp:Button>
    &nbsp;
    <asp:datalist id="DataList1" runat="server" DataKeyField="au_id">
    <ItemTemplate>
    au_id:
    <asp:TextBox id="Tanswer" Text='<%# DataBinder.Eval(Container.DataItem, "au_id")%>' runat="server">
    </asp:TextBox><BR>
    </ItemTemplate>
    </asp:datalist></form>//aspx.cs
    protected System.Web.UI.WebControls.Button Button1;
    protected System.Web.UI.WebControls.DataList DataList1; private void BindList()
    {
    SqlConnection cn = new SqlConnection("server=.;uid=sa;pwd=sa;database=pubs");
    SqlDataAdapter da = new SqlDataAdapter("select * from authors", cn);
    DataSet ds = new DataSet();
    cn.Open();
    da.Fill(ds);
    cn.Close();
    DataList1.DataSource = ds;
    DataList1.DataBind(); } private void Page_Load(object sender, System.EventArgs e)
    {
    if(!IsPostBack)
    {
    BindList();
    }
    } #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    InitializeComponent();
    base.OnInit(e);
    }

    private void InitializeComponent()
    {    
    this.Button1.Click += new System.EventHandler(this.Button1_Click);
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion private void Button1_Click(object sender, System.EventArgs e)
    {
    foreach (DataListItem d in DataList1.Items)
    {
    TextBox t = (TextBox)d.FindControl("Tanswer");
    if (t != null)
    {
    Response.Write(t.Text);//得出结果全部是"System.Web.UI.WebControls.TextBox"
    Response.Write(DataList1.DataKeys[d.ItemIndex].ToString());//能得出正确的值
    Response.Write("<br />");
    }
    } }
      

  6.   

    能把你测试成功的代码发我一份,我自己研究,我这里输出的结果总是:System.Web.UI.WebControls.TextBox,出现这种状况会是什么原因呢???
    [email protected]
    代表胡锦涛叔叔感谢!!!