我将DetailsView的
        <Fields>
         .....
         <asp:CommandField ShowDeleteButton="True" ShowEditButton="True"  ShowInsertButton="True" />
       </Fields>转换为模板后
        
       <asp:TemplateField ShowHeader="False">
                                                                         <EditItemTemplate>
                                                                             <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="True" 
                                                                                 CommandName="Update" Text="更新"></asp:LinkButton>
                                                                             &nbsp;<asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" 
                                                                                 CommandName="Cancel" Text="取消"></asp:LinkButton>
                                                                         </EditItemTemplate>
                                                                         <InsertItemTemplate>
                                                                             <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="True" 
                                                                                 CommandName="Insert" Text="插入"></asp:LinkButton>
                                                                             &nbsp;<asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" 
                                                                                 CommandName="Cancel" Text="取消"></asp:LinkButton>
                                                                         </InsertItemTemplate>
                                                                         <ItemTemplate>
                                                                             <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" 
                                                                                 CommandName="Edit" Text="编辑"></asp:LinkButton>
                                                                             &nbsp;<asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" 
                                                                                 CommandName="New" Text="新建"></asp:LinkButton>
                                                                             &nbsp;<asp:LinkButton ID="LinkButton3" runat="server" CausesValidation="False" 
                                                                                 CommandName="Delete" Text="删除"></asp:LinkButton>
                                                                         </ItemTemplate>
                                                                     </asp:TemplateField>       想发现 删除的LinkButton3      protected void DetailsView1_DataBound(object sender, EventArgs e)
     {
        if (DetailsView1.CurrentMode == DetailsViewMode.ReadOnly)
        {
            LinkButton Lin = (LinkButton)DetailsView1.Rows[14].FindControl("LinkButton3");
            Label4.Text = Lin.Text;
        }
     }
出错说Index超出范围我该怎样找到它 请教

解决方案 »

  1.   

    Rows[14]?你这么DetailsView有这么多行吗?要记得DetailsView一次只显示一条数据,不像Gridview.
      

  2.   

    下次遇到这个错误,第一件事先找有中括号的地方.DetailsView1.Rows[14].
      

  3.   

    是的 <asp:CommandField..在rows[14]行 别的绑定数据的里面控件都能找到
      

  4.   

    不好意思,现在才看明白。
    if (DetailsView1.CurrentMode == DetailsViewMode.ReadOnly)  //这个判断去掉呢?
      

  5.   

    DetailsView1.AutoGenerateDeleteButton = false;