Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Alexandre Mury

[Resolvido] Problema com flag no grid

Recommended Posts

O meu grid esta recebendo no DataSource um Objeto que já esta populado. grid.DataSource = objeto.DefaultView

Dentro deste objeto tenho um flag que será sempre 0 ou 1 (ativo ou inativo). Quero mostrar no grid ao invés de 0 ou 1, o texto Ativo ou Inativo.

Segue o código.....

 

 


            tb_idioma bo = new tb_idioma();
                      
            bo.Query.AddOrderBy(tb_idioma.ColumnNames.tx_idioma, WhereParameter.Dir.ASC);

            if (bo.Query.Load())
            {

                [b] [color="#FF0000"]BindData(this.grdtb_idioma, bo.DefaultView);[/color][/b]
                 this.lblMsg.Visible = false;
                 this.grdtb_idioma.Visible = true;

              }
            else
            {
                this.grdtb_idioma.Visible = false;
                this.lblMsg.Text = "Nenhum registro encontrado!";
            }




 protected void BindData(DataGrid dg, object dataSource)
    {
        foreach (DataGridColumn c in dg.Columns)
        {
            c.HeaderText = System.Text.RegularExpressions.Regex.Replace(c.HeaderText,
                " <.*>", String.Empty);

            if (SortExpression != string.Empty &&
                c.SortExpression == SortExpression)
            {
                if (SortAscending)
                    c.HeaderText += string.Concat(" <img src=\"",
                        dg.ResolveUrl("~/images/up.gif"),
                        "\" border=\"0\" width=\"11\" height=\"7\" />");
                else
                    c.HeaderText += string.Concat(" <img src=\"",
                        dg.ResolveUrl("~/images/down.gif"),
                        "\" border=\"0\" width=\"11\" height=\"7\" />");
            }
        }
       
        [color="#FF0000"]dg.DataSource = dataSource;
        dg.DataBind();[/color]
    }


obs: Primeira vez que uso o Fórum, desde já obrigado a todos que tentarem me ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Movido Plataforma .NET http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Plataforma .NET > Web Applications

 

Alexandre, seja bem vindo ao Fórum iMasters, conheça nossas regras: Regras do Fórum

 

Você terá que usar o evento RowDataBound da grid, para cada linha fazer a verificação. Pesquise sobre este evento.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Movido Plataforma .NET http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Plataforma .NET > Web Applications

 

Alexandre, seja bem vindo ao Fórum iMasters, conheça nossas regras: Regras do Fórum

 

Você terá que usar o evento RowDataBound da grid, para cada linha fazer a verificação. Pesquise sobre este evento.

 

Abraços...

 

 

Fiz o seguinte

 

<asp:datagrid id="grdtb_idioma" runat="server" CssClass="dg_Grid" AutoGenerateColumns="False" 
                        PageSize="15" AllowPaging="True" AllowSorting="True" OnRowDataBound="grdtb_idioma_RowDataBound" >



protected void grdtb_idioma_RowDataBound(object sender, GridViewRowEventArgs e)  
    {  
        
    }

mas o breakpoint não passa no grdtb_idioma_RowDataBound, alguem pode me ajudar ?

 

 

valeu, abraços a todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Existe algo assim no seu codebehind:

 

grdtb_idioma.DataBind();

 

 

quando você da o databind ele chama o seu rowDataBound

 

sim, sim

 


dg.DataSource = dataSource;
dg.DataBind();

so que quando ele da o DataBind ele não está passando no rowDataBound

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem dois eventos de nomes parecidos e acaba confundindo, ao invés de utilizar o OnRowDataBound utilize DataBound.

Eu passei o nome errado no meu primeiro post.

 

Abraços...

 

 

Consegui resolver de outra forma da uma olhada:

 

 


 protected void grdtbIdioma_ItemDataBound(object sender, DataGridItemEventArgs e)
    {
        
            if (e.Item.Cells[7].Text == "1")
                e.Item.Cells[4].Text = "Ativo";
            else
                e.Item.Cells[4].Text = "Inativo";

            if (e.Item.ItemType == ListItemType.Header) {


                e.Item.Cells[4].Text = "Status";
            
            }

        
        

    }   

 

 

 

obs, não consegui postar a imagem de como ficou o grid.

 

 

valeu pela força, abraços,

 

Alexandre Mury

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.