segunda-feira, 19 de junho de 2017

Como usar o evento Click dentro de uma GridView Child (GirdView dentro de outra)

Até que em fim encontrei. Não luta mais usa isso:
<asp:GridView runat="server" ID="GridView1" DataKeyNames="ID">
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>
                Name <%# Eval("ID"%>
                <asp:GridView runat="server" ID="gvChildGrid" DataSource='<%# Eval("Values"%>'>
                    <Columns>
                        <asp:TemplateField>
                            <ItemTemplate>
                                <asp:LinkButton ID="lnkButton" runat="server" Text="Click" OnClick="lnkButton_Click"></asp:LinkButton>
                            </ItemTemplate>
                        </asp:TemplateField>
                    </Columns>
                </asp:GridView>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>
protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        GridView1.DataSource = new[] { new { ID = 1, Values = new string[] { "1""2""3" } } }.ToList();
        GridView1.DataBind();
    }
}
protected void lnkButton_Click(object sender, EventArgs e)
{
    LinkButton lnkButton = sender as LinkButton;
    //child gridview row clicked
    GridViewRow childRow = lnkButton.NamingContainer as GridViewRow;
    //child grid clicked
    GridView childGrid = childRow.NamingContainer as GridView;
    //parent gridviewrow containing the child grid
    GridViewRow parentRow = (childGrid.NamingContainer as GridViewRow);
    //Id is the datakeyname of my gridview
    string parentId = GridView1.DataKeys[parentRow.RowIndex].Value.ToString();
 
}

Related Articles

0 comentários:

Enviar um comentário

Pesquisar neste blogue

Com tecnologia do Blogger.

Páginas