ASP.NET GridView - Parte 4

watch_later 20 de abr de 2013
Como acessar valores de um TemplateField ( modelo personalizado ) em um GridView?

Em um GridView o TemplateField nos permite especificar controles personalizados, múltiplos campos, e código HTML usando um modelo totalmente personalizado.Podemos ligar os dados dentro de um TemplateField usando uma expressão de vinculação de dados. O ASP.NET fornece uma série de maneiras de fazer Bind em controles assim.

Vamos dizer que você tem o seguinte desenho em um GridView:



Agora você deseja acessar o valor deste campo a partir do code-behind onde você deseja atualizar o texto ou o que você quer fazer algumas operações adicionais nesse campos. No trecho de código abaixo, se o nome começa com "A", ele não será exibido.


protected void myGrid_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        Customer cust = e.Row.DataItem as Customer;
        if (!cust.ShowURL)
        {
            Label lableName = e.Row.FindControl("Label1") as Label;
            if (lableName.Text.StartsWith("A"))
            {
                lableName.Visible = false;
            }
        }
    }
}


Assim, para qualquer situação, se você quiser acessar os controles dentro de TemplateField verifique primeiro se a linha é um DataRow, então use seu método GridViewRow.FindControl para obter o controle. Uma vez que você tem o controle do mesmo tipo, você pode fazer todas as operações adicionais.


Outras Postagens do GridView

ASP.NET GridView - Parte 1
ASP.NET GridView - Parte 2
ASP.NET GridView - Parte 3
ASP.NET GridView - Parte 5
ASP.NET GridView - Parte 6