我用findcontrol取得detailsview中插入模板的textbox.有10个textbox.((TextBox)DetailsView1.Controls[0].Controls[0].FindControl("tbmcb")).Text;
((TextBox)DetailsView1.Controls[0].Controls[1].FindControl("tbmcb")).Text;
((TextBox)DetailsView1.Controls[0].Controls[2].FindControl("tbmcb")).Text;
((TextBox)DetailsView1.Controls[0].Controls[3].FindControl("tbmcb")).Text;
((TextBox)DetailsView1.Controls[0].Controls[4].FindControl("tbmcb")).Text;前面几个都没问题,可是到controls[4],就提示超出范围.
可是应该是没问题的.难道findcontrol有使用数量限制??

解决方案 »

  1.   

    难道findcontrol有使用数量限制??
    --------
    不是findControl有数量限制,是你的1,2,2,4超过了
      

  2.   

    DetailsView1.Controls[0].Controls数量是不是只有4个?
      

  3.   

    不是findControl有数量限制,是你的1,2,2,4超过了
    =================================================
    这是什么意思呢?
      

  4.   

    不是controls有限制,是你在DetailView上放了几个Control
      

  5.   

    不是controls有限制,是你在DetailView上放了几个Control
    ============================我对这个control不太理解。对findctrol的用法感觉不方便。我就是在插入模板里写了10个textbox。
      

  6.   

    你把你的DataList的控件的代码贴出来吧,只要aspx里的
      

  7.   

    for(int i=0;i<DetailsView1.Rows.Count;i++)
    {
       ((TextBox)DetailsView1.Controls[0].Controls[i].FindControl("tbmcb")).Text;
    }
    遍历所有的吧
      

  8.   

    aspx的代码贴出来看看,应该是列数只有4个
      

  9.   

    <asp:DetailsView ID="DetailsView1" runat="server" ...>
                <Fields>
    <InsertItemTemplate>
       <table>
            <tr><td>设备编号</td>
            <td><asp:TextBox ID="tbnob" runat="server"/></td>
            </tr>
            <tr>
            <td>名称</td>
            <td><asp:TextBox ID="tbmcb" runat="server" /></td>
            </tr>
            <tr>
            <td>型号</td>
            <td><asp:TextBox ID="tbxhb" runat="server" /></td>
            </tr>
            <tr>
            <td>参数</td>
            <td><asp:TextBox ID="tbcsb" runat="server"  /></td>
            </tr>
            <tr>
            <td>品牌</td>
            <td><asp:TextBox ID="tbppb" runat="server" /></td>
            </tr>
            <tr>
            <td>厂家</td>
            <td><asp:TextBox ID="tbcjb" runat="server"/></td>
            </tr>
            <tr>
            <td>购买日期</td>
            <td><asp:TextBox ID="tbgmrqb" runat="server" /></td>
            </tr>
            <tr>
            <td>保修到期</td>
            <td><asp:TextBox ID="tbbxdqb" runat="server"/></td>
            </tr>
            <tr>
            <td>备注</td>
            <td><asp:TextBox ID="tbreb" runat="server"/></td>
            </tr>
            </table>                                    
        </InsertItemTemplate>
     </fields>
    </asp:detailsview>
      

  10.   

    解决了,
    ((TextBox)DetailsView1.Controls[0].Controls[0].FindControl("tbmcb")).Text;
    ((TextBox)DetailsView1.Controls[0].Controls[0].FindControl("tbmcb")).Text;
    ((TextBox)DetailsView1.Controls[0].Controls[0].FindControl("tbmcb")).Text;
    ((TextBox)DetailsView1.Controls[0].Controls[0].FindControl("tbmcb")).Text;
    ((TextBox)DetailsView1.Controls[0].Controls[0].FindControl("tbmcb")).Text;谁能解释下?
    谢谢了.为什么书上总是看不到这些内容呢?
      

  11.   

    超出了DetailsView1的最大数量
    为什么书上总是看不到这些内容呢?
    -----------
    有些东西是要靠自己慢慢去摸索的,尽信书不如无书