terça-feira, setembro 04, 2012

Obter o valor de um campo no RowCommand do GridView

HI,

Se tiver outra maneira eu desconheço.

Obter o valor de um campo da query no RowDataBound é tranquilo, mas eu precisei de valores que não aparecem no gridview quando uma linha é selecionada.

No GridView faço assim:
string cod_associado = ((DataRowView)e.Row.DataItem)["COD_ASSOCIADO"].ToString();

Vi que existe a propriedade DataKeyNames no gridview e fui pesquisar no google como utilizá-lo.

Achei essa páginas

ASP .NET - Manutenção de dados com GridView e Ajax
http://www.macoratti.net/11/09/aspn_gdvm.htm

GridViewCommandEventArgs
http://forums.asp.net/t/1033685.aspx

Get DataKey values in GridView RowCommand
http://stackoverflow.com/questions/2818203/get-datakey-values-in-gridview-rowcommand


Consegui montar esse código


protected void gdvTurmas_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "Select")
            {
                GridViewRow row = gdvTurmas.Rows[Convert.ToInt32(e.CommandArgument)];

                string cod_associado = gdvTurmas.DataKeys[row.RowIndex].Values[0].ToString();

                Session["CODASSOC"] = cod_associado;
            }
        }



Se for pra pegar um valor que tá visível no grid, no evento RowCommand, é assim:
row.Cells[4].Text


Fiquem na Paz!!!

Nenhum comentário: