2011-06-17 6 views
2

からGridViewのラベルフィールドへのアクセス私はGridViewコントロールを持っている、と私はコードがあるのTextViewにラベルのテキスト値を取得しようとしている:コードビハインド

<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; 

EDIT:

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; 

EDIT 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)をLabel;としていますが、何らかの理由でそれが動作していません。どんな考え? –

+0

@Jordan And? tempLabelはnullですか? –

+0

私はnullreferenceexceptionを得ています –

関連する問題