2012-06-08 21 views
0

我想在单击编辑按钮时获取文字文本。我已经写代码来做到这一点,但是当我 运行程序,我得到这个异常在编辑事件中捕获文人的文本0

"Specified argument was out of the range of valid values. Parameter name: index" 

的.aspx代码:

<gridview id="gridview3" onrowediting="edit> 
    <coulmn> 

     <asp:TemplateField HeaderText="description" Visible="true"> 
      <ItemTemplate> 
      <asp:Literal ID="id6" runat="server" Text='<%#Eval("description") %>' > 
      </asp:Literal> 
      </ItemTemplate> 
      <EditItemTemplate> 
       <asp:TextBox ID="TextBox1" Text='<%#Eval("description") %>' 
runat="server" ></asp:TextBox> 

      </EditItemTemplate> 
      <FooterTemplate> 

      <asp:TextBox ID="TextBox3" runat="server" ></asp:TextBox> 

      </FooterTemplate> 
     </asp:TemplateField> 

     <asp:TemplateField HeaderText="Agree" Visible="true"> 
      <ItemTemplate> 

      <asp:Literal ID="id5" runat="server" Text='<%#Eval("option1") %>' > 
      </asp:Literal> 
      </ItemTemplate> 
      <EditItemTemplate> 
       <asp:TextBox ID="TextBox11" Text='<%#Eval("option1") %>' 
       runat="server" ></asp:TextBox> 

      </EditItemTemplate> 
      <FooterTemplate> 

      <asp:TextBox ID="TextBox4" runat="server" ></asp:TextBox>  

      </FooterTemplate> 
     </asp:TemplateField> 
      <asp:TemplateField HeaderText="Disagree" Visible="true"> 
      <ItemTemplate> 

      <asp:Literal ID="id4" runat="server" Text='<%#Eval("option2") %>' > 
      </asp:Literal> 
      </ItemTemplate> 
      <EditItemTemplate> 
       <asp:TextBox ID="TextBox5" Text='<%#Eval("option2") %>' runat="server">   
       </asp:TextBox> 
      </EditItemTemplate> 
      <FooterTemplate> 

      <asp:TextBox ID="TextBox6" runat="server" ></asp:Text> 

      </FooterTemplate> 
     </asp:TemplateField> 

     <asp:TemplateField HeaderText="Action" Visible="true"> 
      <ItemTemplate> 
       <asp:LinkButton ID="LinkButton5" Text="Edit" CommandName="edit" 

      runat="server"></asp:LinkButton> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </coulmn> 
</gridview> 

**code behind:** 

protected void edit(object sender, GridViewEditEventArgs e) 
{ 
    Literal l = GridView2.Rows[0].Cells[3].Controls[1] as Literal; 
    Label5.Text = l.Text; 

    gridview3.EditIndex = e.NewEditIndex; 
} 

回答

0

请试试这个

Literal l = GridView2.Rows[e.NewEditIndex].FindControl("id6") as Literal; 
Label5.Text = l.Text;