我从SQL SERVER中读出一个填空题,如:
____在其最好情况下的算法时间复杂度为O(n)。在用下面语句将其转换:str = System.Text.RegularExpressions.Regex.Replace(str, "_+", "<input id=\"" + Application["exID"] + "TKT" + k + "\" name=\"" + Application["exID"] + "TKT" + k + "\" runat=\"server\" class=\"input\"/>");
然后将str重新写回数据库,覆盖上面的原来的题目现在数据库中的题目为:<input id="30102TKT1" name="30102TKT1" runat="server" class="input"/>在其最好情况下的算法时间复杂度为O(n)。问题:现在无法取到TextBox 30102TKT1的值。我用的取值语句是:TextBox txt = (TextBox)DataList3.Items[int_row3 - 1].FindControl("TextBox1");
判断时txt==null;求各位大虾帮助,谢谢 

解决方案 »

  1.   


    <input id="30102TKT1" name="30102TKT1" runat="server" class="input"/>
    这个标签 都结束了,怎么可能取到值,"在其最好情况下的算法时间复杂度为O(n)。"这句话是在标签外面的
      

  2.   

    <input id="30102TKT1" name="30102TKT1" runat="server" class="input">在其最好情况下的算法时间复杂度为O(n)。</input>
    改成这样试试。
      

  3.   

    谢谢啊!<input id="30102TKT1" name="30102TKT1" runat="server" class="input">是个文本框 是用户输入答案用的 我就是要取这个TextBox里面的答案。
      

  4.   

    设置断点跟踪一下,看看input标签中是否有值。再看问题出现在哪。
      

  5.   

    我把完整代码 发给你看下吧 我设了断点 tb一直等于null
     SqlDataAdapter myadapter6 = new SqlDataAdapter("select * from tb_TQuestion where exID='" + Application["exID"] + "'", con);
                        DataSet myds6 = new DataSet();
                        myadapter6.Fill(myds6);
                        DataRow[] row3 = myds6.Tables[0].Select();
                        foreach (DataListItem item in DataList3.Items)
                        {
                            if (item.ItemType == ListItemType.AlternatingItem ||     item.ItemType == ListItemType.Item)
                            {
                                TextBox tb = (TextBox)item.FindControl("30102TKT1");
                                if (tb == null)
                                    Response.Write("1");
                                else
                                    Response.Write("2");
                            }
                        }
    显示结果是两个1,也就是tb==null