Ir para conteúdo

POWERED BY:

Arquivado

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

James_Pinheiro

Problemas com gridview

Recommended Posts

Bom dia a Todos, estou com um problema a dias com uma gridview.

 

Eu estou usando o código abaixo para mudar a cor da linha conforme o valor da coluna. Caso o valor da coluna 6 seja "aguardando fechamento" ele determina que aquela linha fica com a class css "selecionada-vermelha".

 

Protected Sub grdOs_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles grdOs.RowDataBound
 If e.Row.RowType = DataControlRowType.DataRow Then
   If e.Row.Cells(6).Text = "Aguardando fechamento" Then
     e.Row.CssClass = "selecionada-vermelha"   
   End If
 End If
End Sub

 

Ate aqui tudo bem, eu também criei uma class css para as linhas que serão selecionadas, também inclui um botão na grid, que tem a função de selecionar a linha que eu quero, clicando no botão, conforme pode ser visto no código abaixo.

 

	<asp:GridView ID="grdOs" runat="server" AllowPaging="True" AllowSorting="True" 
           AutoGenerateColumns="False" DataKeyNames="NUM_OS,TIPO,SITUACAO_PK" 
           DataSourceID="SdsGrdOs" GridLines="None" CssClass="tabela-sait-marrom" 
            PageSize="4">
        <AlternatingRowStyle />
        <Columns>
            <asp:TemplateField ShowHeader="False">
                <ItemTemplate>
                    [b]<asp:ImageButton ID="ImageButton1" runat="server" CausesValidation="false" 
                        CommandName="SELECT" ImageUrl="~/Imagem/Btns/grid_selecionar.gif" 
                        onclick="ImageButton1_Click" Text="Selecione" />[/b]
                </ItemTemplate>
            </asp:TemplateField>
            <asp:BoundField DataField="NUM_OS" HeaderText="Num _os" Visible="False" />
            <asp:BoundField DataField="OS" HeaderText="OS" SortExpression="OS" 
                HeaderStyle-CssClass="th-tabela-sait-marrom" >
<HeaderStyle CssClass="th-tabela-sait-marrom"></HeaderStyle>
            </asp:BoundField>
            <asp:BoundField DataField="DATA" HeaderText="Data" SortExpression="DATA" 
                HeaderStyle-CssClass="th-tabela-sait-marrom" >
<HeaderStyle CssClass="th-tabela-sait-marrom"></HeaderStyle>
            </asp:BoundField>
            <asp:BoundField DataField="NOME_SERVICO" HeaderText="Serviço" SortExpression="NOME_SERVICO"
                HeaderStyle-CssClass="th-tabela-sait-marrom" >
<HeaderStyle CssClass="th-tabela-sait-marrom"></HeaderStyle>
            </asp:BoundField>
            <asp:BoundField DataField="SITUACAO_PK" HeaderText="Situação_pk" 
                Visible="False" />
            <asp:BoundField DataField="SITUACAO" HeaderText="Situação" SortExpression="SITUACAO" 
                HeaderStyle-CssClass="th-tabela-sait-marrom" >
<HeaderStyle CssClass="th-tabela-sait-marrom"></HeaderStyle>
            </asp:BoundField>
            <asp:BoundField DataField="TIPO" HeaderText="Tipo" Visible="False" />
            <asp:TemplateField ShowHeader="False">
                <ItemTemplate>
                    <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="false" 
                        CommandName="" onclick="LinkButton1_Click" Text="Visualizar" CssClass="link-marrom"></asp:LinkButton>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
          <EmptyDataTemplate>
                       Nenhuma OS em aberto.
                       </EmptyDataTemplate>          
        <PagerStyle CssClass="paginacao-sait" />
        [b]<SelectedRowStyle CssClass="selecionada" />[/b]
       </asp:GridView>

 

Meu problema é, quando eu seleciono uma linha da grid ele não esta determinando que a linha selecionada fique com a class css "selecionada", conforme o código acima. Ele chega a selecionar a linha mas continua com a class css "selecionada-vermelha". Como eu faço para forçar a troca? ou se houver outra forma de fazer por favor me ajudem...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia a Todos, estou com um problema a dias com uma gridview.

 

Eu estou usando o código abaixo para mudar a cor da linha conforme o valor da coluna. Caso o valor da coluna 6 seja "aguardando fechamento" ele determina que aquela linha fica com a class css "selecionada-vermelha".

 

Protected Sub grdOs_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles grdOs.RowDataBound
 If e.Row.RowType = DataControlRowType.DataRow Then
   If e.Row.Cells(6).Text = "Aguardando fechamento" Then
     e.Row.CssClass = "selecionada-vermelha"   
   End If
 End If
End Sub

 

Ate aqui tudo bem, eu também criei uma class css para as linhas que serão selecionadas, também inclui um botão na grid, que tem a função de selecionar a linha que eu quero, clicando no botão, conforme pode ser visto no código abaixo.

 

	<asp:GridView ID="grdOs" runat="server" AllowPaging="True" AllowSorting="True" 
           AutoGenerateColumns="False" DataKeyNames="NUM_OS,TIPO,SITUACAO_PK" 
           DataSourceID="SdsGrdOs" GridLines="None" CssClass="tabela-sait-marrom" 
            PageSize="4">
        <AlternatingRowStyle />
        <Columns>
            <asp:TemplateField ShowHeader="False">
                <ItemTemplate>
                    [b]<asp:ImageButton ID="ImageButton1" runat="server" CausesValidation="false" 
                        CommandName="SELECT" ImageUrl="~/Imagem/Btns/grid_selecionar.gif" 
                        onclick="ImageButton1_Click" Text="Selecione" />[/b]
                </ItemTemplate>
            </asp:TemplateField>
            <asp:BoundField DataField="NUM_OS" HeaderText="Num _os" Visible="False" />
            <asp:BoundField DataField="OS" HeaderText="OS" SortExpression="OS" 
                HeaderStyle-CssClass="th-tabela-sait-marrom" >
<HeaderStyle CssClass="th-tabela-sait-marrom"></HeaderStyle>
            </asp:BoundField>
            <asp:BoundField DataField="DATA" HeaderText="Data" SortExpression="DATA" 
                HeaderStyle-CssClass="th-tabela-sait-marrom" >
<HeaderStyle CssClass="th-tabela-sait-marrom"></HeaderStyle>
            </asp:BoundField>
            <asp:BoundField DataField="NOME_SERVICO" HeaderText="Serviço" SortExpression="NOME_SERVICO"
                HeaderStyle-CssClass="th-tabela-sait-marrom" >
<HeaderStyle CssClass="th-tabela-sait-marrom"></HeaderStyle>
            </asp:BoundField>
            <asp:BoundField DataField="SITUACAO_PK" HeaderText="Situação_pk" 
                Visible="False" />
            <asp:BoundField DataField="SITUACAO" HeaderText="Situação" SortExpression="SITUACAO" 
                HeaderStyle-CssClass="th-tabela-sait-marrom" >
<HeaderStyle CssClass="th-tabela-sait-marrom"></HeaderStyle>
            </asp:BoundField>
            <asp:BoundField DataField="TIPO" HeaderText="Tipo" Visible="False" />
            <asp:TemplateField ShowHeader="False">
                <ItemTemplate>
                    <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="false" 
                        CommandName="" onclick="LinkButton1_Click" Text="Visualizar" CssClass="link-marrom"></asp:LinkButton>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
          <EmptyDataTemplate>
                       Nenhuma OS em aberto.
                       </EmptyDataTemplate>          
        <PagerStyle CssClass="paginacao-sait" />
        [b]<SelectedRowStyle CssClass="selecionada" />[/b]
       </asp:GridView>

 

Meu problema é, quando eu seleciono uma linha da grid ele não esta determinando que a linha selecionada fique com a class css "selecionada", conforme o código acima. Ele chega a selecionar a linha mas continua com a class css "selecionada-vermelha". Como eu faço para forçar a troca? ou se houver outra forma de fazer por favor me ajudem...

 

Já Pensou em jQuery?

 

Dê uma olhada nisso:

<html>
<head>
<title>Teste</title>
<script src="http://code.jquery.com/jquery-1.7.2.min.js" type="text/javascript"></script>
<style>
.EstiloA {
background-color:#CCC;
}
.EstiloB{
background-color:red;
}
</style>
<script>

$(document).ready(function(){
$("#MinhaTabela tr").addClass("EstiloA");

$('#MinhaTabela tr td a').click(function() {
	$(this).parent().parent().removeClass("EstiloA").addClass("EstiloB");
})
})


</script>
</head>

<body>
<table id="MinhaTabela">
 <tr>
   <td>Item</td>
   <td><a href="#" class="MeuClickBotao">botao</a></td>
 </tr>
 <tr>
   <td>Item</td>
   <td><a href="#" class="MeuClickBotao">botao</a></td>
 </tr>
 <tr>
   <td>Item</td>
   <td><a href="#" class="MeuClickBotao">botao</a></td>
 </tr>
</table>
</body>
</html>

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.