2011-06-17 215 views
2

我有一個GridView,而我試圖讓TextView的一個標籤的文本價值訪問GridView的標籤字段,其中的代碼是:從代碼隱藏

<asp:TemplateField HeaderText="someText" SortExpression="someExpression"> 
    <ItemTemplate> 
     <asp:Label ID="someLabel" runat="server" Text='<%# Bind("someField") %>'></asp:Label> 
    </ItemTemplate> 
</asp:TemplateField> 

我希望能夠到在我的代碼隱藏文件中將selectedRow中「someLabel」的文本值作爲字符串獲取。

回答

1
Label someLabel = selectedRow.FindControl("someLabel") as Label; 

編輯:

private static Control FindControlRecursive(Control parent, string id) 
    { 
     if (parent.ID== id) 
     { 
      return parent; 
     } 

     return (from Control ctl in parent.Controls select FindControlRecursive(ctl, id)) 
      .FirstOrDefault(objCtl => objCtl != null); 
    } 

Label someLabel = FindControlRecursive(GridView.SelectedRow, "someLabel") as Label; 

編輯2:

private void imageButton_Click(object sender, EventArgs e) 
{ 
    Label someLabel = (sender as Control).Parent.FindControl("someLabel") as Label; 
} 
+0

這是我一直想:'標籤tempLabel = GridView.SelectedRow.FindControl (「someLabel」)作爲標籤;',但由於某種原因,這是行不通的。任何想法爲什麼? –

+0

@Jordan和? tempLabel爲空? –

+0

我收到nullreferenceexception –