WebDataGridのTemplateDataField内の文字列をコードビハインドで取得するには、TemplateDataFieldのセルに対して、ASP.NET WebForms標準のFindControlメソッドを使います。

<%-- ASPX側 --%>
<asp:Button ID="Button1" runat="server" Text="Button1" OnClick="Button1_Click" />
<ig:WebDataGrid ID="WebDataGrid1" runat="server" ...>
    <Columns>
        <ig:BoundDataField DataFieldName="ID" Key="ID" ...></ig:BoundDataField>
        <ig:TemplateDataField Key="Name">
            <ItemTemplate>
                <asp:Label ID="FamilyNameLabel" runat="server" Text='<%# Bind("FamilyName") %>'></asp:Label>
                <asp:Label ID="GivenNameLabel" runat="server" Text='<%# Bind("GivenName") %>'></asp:Label>
            </ItemTemplate>
            <Header Text="Name">
            </Header>
        </ig:TemplateDataField>
        <ig:BoundDataField DataFieldName="Age" Key="Age" ...></ig:BoundDataField>
    </Columns>
</ig:WebDataGrid>
// ASPX.cs側
protected void Button1_Click(object sender, EventArgs e)
{
    // 0行目のName欄のテキストを取得する。
    String familyName = (WebDataGrid1.Rows[0].Items[1].FindControl("FamilyNameLabel") as Label)?.Text;
    String givenName = (WebDataGrid1.Rows[0].Items[1].FindControl("GivenNameLabel") as Label)?.Text;

    System.Diagnostics.Debug.WriteLine("FamilyName=" + familyName + ", GivenName=" + givenName);
}

 

サンプル

 

参考情報(ASP.NET WebForms開発元のマイクロソフトのサイトより)

 

Tagged:

製品について

Ultimate UI for ASP.NET