2012-08-30 96 views
0

我有gridview,我想對它進行foreach行,並且從列標題中獲取值其中此行有一個單元格的標籤。在網格中查找單元格的標頭值

foreach (GridViewRow mainRow in grid1.Rows) 
{ 
    var header = mainRow.Cells[2].Parent.FindControl("LabelID");//is null 
} 

我該如何找到它?

回答

2

如果你想在RowDataBound事件的價值,那麼你可以檢查ROWTYPE這樣

if(e.Row.RowType == DataControlRowType.Header) 
{ 
    Label header = (Label)e.Row.FindControl("LabelID"); 
} 
1

我將通過根據細胞訪問headerRow枚舉(上buttonClick的RowDataBound ...)

default.aspx

<asp:GridView AutoGenerateColumns="false" ID="GridView1" runat="server"> 
    <Columns> 
     <asp:TemplateField> 
      <HeaderTemplate> 
       <asp:Label ID="headerLabel1" runat="server" Text="Headercolumn1"></asp:Label> 
      </HeaderTemplate> 
      <ItemTemplate> 
       <asp:Label ID="itemLabel1" runat="server" Text='<%# Eval("name") %>' /> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 
<asp:Button ID="btnGetHeader" runat="server" Text="GetHeader" OnClick="btnGetHeader_Click" /> 

default.aspx.cs

protected void btnGetHeader_Click(object sender, EventArgs e) 
{ 
    foreach (TableCell headerCell in GridView1.HeaderRow.Cells) 
    { 
     // or access Controls with index 
     //  headerCell.Controls[INDEX] 
     Label lblHeader = headerCell.FindControl("headerLabel1") as Label; 
     if (lblHeader != null) 
      Debug.WriteLine("lblHeader: " + lblHeader.Text); 
    } 
} 
相關問題