2014-04-17 38 views
0

我想添加一个GridView,并且我已经添加了一个按钮到最后一列。它没有做任何事情,我已经做了一个新的标签,看它是否返回任何数据,但它似乎只是在最后一行工作。 你看到我的代码有什么问题吗?提前致谢!GridViewRow只选择最后一行

HTML

   <asp:Button runat="server" Text="Submit" OnClick="ButtonClick8" /> 
       </ItemTemplate> 
      </asp:TemplateField> 

     </Columns> 
     <FooterStyle BackColor="#FFFFCC" ForeColor="#330099" /> 
     <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="#FFFFCC" /> 
     <PagerStyle BackColor="#FFFFCC" ForeColor="#330099" HorizontalAlign="Center" /> 
     <RowStyle BackColor="White" ForeColor="#330099" /> 
     <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="#663399" /> 
     <SortedAscendingCellStyle BackColor="#FEFCEB" /> 
     <SortedAscendingHeaderStyle BackColor="#AF0101" /> 
     <SortedDescendingCellStyle BackColor="#F6F0C0" /> 
     <SortedDescendingHeaderStyle BackColor="#7E0000" /> 
    </asp:GridView> 

C#

protected void ButtonClick8(object sender, System.EventArgs e) 
{ 
    Button button2 = (Button)sender; 

    GridViewRow row2 = (GridViewRow)button2.NamingContainer; 
    int i = 0; 
    int string1; 
    foreach (GridViewRow gvr in GridView2.Rows) 
    { 
     if (gvr == row2) 
     { 
      string1 = Convert.ToInt32(gvr.Cells[0].Text); 
      Label1.Text = string1.ToString(); 

     } 
     else 
     { 
      Label1.Text = "no"; 
     } 
    } 

再次感谢您!

回答

1

您的foreach循环正在执行,直到到达最后一列并覆盖标签文本。当gvr == row2时退出循环:

foreach (GridViewRow gvr in GridView2.Rows) 
{ 
    if (gvr == row2) 
    { 
     string1 = Convert.ToInt32(gvr.Cells[0].Text); 
     Label1.Text = string1.ToString(); 
     break; 

    } 
    else 
    { 
     Label1.Text = "no"; 
    } 
} 
+0

多数民众赞成在很大。真的很感谢帮助! – user3437235