2017-07-16 3 views
0

この質問は以前何度か尋ねられましたが、私の問題を解決する答えが見つかりませんでした。asp.netテンプレートフィールド検索コントロールを使用してセルテキストを取得しません

私はだから私は次のことを試してみました

、私はテンプレートのフィールドを持つGridViewコントロールを持っていると私はGridViewコントロール内のセルのテキストにアクセスしようとしています、非常に基本的でシンプルな何かをする必要があり

C#

Label lbl = GridView1.SelectedRow.Cells[0].FindControl("lblSomething") as Label; 
string customerName = lbl.Text; 

HTML

<Columns> 
    <asp:CommandField ShowSelectButton="True" /> 
    <asp:TemplateField SortExpression="Item"> 
    <HeaderTemplate> 
     <asp:LinkButton ID="lblSomething" runat="server" Text="title" CommandName="Sort" CommandArgument="Something" ForeColor="white"></asp:LinkButton><br /> 
     <asp:TextBox runat="server" ID="Something" AutoPostBack="false" Width ="60" autocomplete="off"></asp:TextBox>      
    </HeaderTemplate> 
    <ItemTemplate> 
     <%#Eval("Something") %> 
    </ItemTemplate> 
    <ItemStyle Width="80px" /> 
    </asp:TemplateField> 

lblはnullを戻します。

FindControlの使い方を教えてもらえますか?できるだけ明確にしよう。

答えて

2

LinkBut​​tonは、通常の行ではなく、HeaderRowにあります。ヘッダーでFindControlを使用する必要があります。

LinkButton lb = GridView1.HeaderRow.FindControl("lblSomething") as LinkButton; 

正しいタイプをキャストしてください。ラベルを検索していますが、lblSomethingはLinkBut​​tonです。

+0

すばらしい回答ありがとうございましたが、まだ私はselectedRowのセルのテキストにアクセスしようとしています。どうしたらいいですか? –

+0

列の生成方法によって異なります。 'Text'プロパティは' TemplateField'では使用できません。しかし、ソースデータに簡単にアクセスすることができるので、必要はありません。 – VDWWD

関連する問題