Usuário com melhor resposta
Calendário com Gridview - Consulta de Disponibilidade de datas

Pergunta
-
Olá,
Estou desenvolvendo um sistema para uma pousada, onde coloco uma entrada(Dataini) e saída(DadaFim) salvando no banco de dados, porém a minha dificuldade está em criar um mapa de disponibilidade, onde o administrador poderá consultar em quais datas o quarto estará disponivel.
O exemplo abaixo demostra a minha duvida.
Quando os dias forem ocupados estejam em "O" e quando livre "L" conforme abaixo.
Dias 1 2 3 4 5 6 7 8 9 10... 31
Quarto1 O O O L L L L O O O
Quarto2 L L O L O O L O O O
Quando faço a reserva, apenas efetuo o lançamento da data inicial e o período final.
Infelismente estou encontrando dificuldades em criar algo deste tipo, alguém ja passou por isso, pode compartilhar ?
Estou utilizando c# asp.net com base de dados em sql.
Obrigado pela atenção !
Abraços !!
Anderson
Jimi Anderson
Respostas
-
Amigo qual sua dificuldade???
Assim: se não ta entendendo como fazer isso no Gridview ???
Bom Exemplo:
Bom em cima seria minha camada de persistência e logo abaixo o banco SQL Server com a Tabela reserva preenchida com algumas datas ...
CREATE TABLE [dbo].[Quartos]( [QuartoId] [int] IDENTITY(1,1) NOT NULL, [QuartoNumero] [int] NOT NULL, CONSTRAINT [PK_Quarto] PRIMARY KEY CLUSTERED ( [QuartoId] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] CREATE TABLE [dbo].[Reservas]( [ReservaId] [int] IDENTITY(1,1) NOT NULL, [QuartoId] [int] NULL, [DataIni] [smalldatetime] NULL, [DataFim] [smalldatetime] NULL, CONSTRAINT [PK_Reservas_1] PRIMARY KEY CLUSTERED ( [ReservaId] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] ALTER TABLE [dbo].[Reservas] WITH CHECK ADD CONSTRAINT [FK_Reservas_Quarto] FOREIGN KEY([QuartoId]) REFERENCES [dbo].[Quartos] ([QuartoId]) ALTER TABLE [dbo].[Reservas] CHECK CONSTRAINT [FK_Reservas_Quarto]
Agora é como eu criei as tabelas - Script Create Table Reservas e Quartos
OK!
Coloquei um GridView na ASPX assim:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebReservas.aspx.cs" Inherits="WebApplication1.WebReservas" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:GridView runat="server" ID="GridReserva" Caption="Dias" CaptionAlign="Bottom" EmptyDataText="Sem Registros ..." ShowFooter="True" ShowHeaderWhenEmpty="True"></asp:GridView> </div> </form> </body> </html>
E a codificação dessa página .cs ficou assim:
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using WebApplication1.Models;
namespace WebApplication1
{
public partial class WebReservas : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GerarReserva();
}
}
protected void GerarReserva()
{
//Variaveis que você pode mudar o seu sistema!!!
int Mes = DateTime.Now.Month;
int Ano = DateTime.Now.Year;
DataTable TableReserva = new DataTable();
Layout(ref TableReserva, Mes, Ano);
using (MSDNUserEntities Db = new MSDNUserEntities())
{
IList<Reservas> reservas = Db.Reservas.AsNoTracking().Where(x => x.DataIni.Value.Month == Mes || x.DataFim.Value.Month == Mes).ToList();
IList<Quartos> quartos = Db.Quartos.AsNoTracking().ToList();
foreach (Quartos quarto in quartos)
{
DataRow Row = TableReserva.NewRow();
RowSet(ref Row, Mes, Ano);
Row["Quartos"] = quarto.QuartoNumero;
//
foreach (Reservas reserva in reservas.Where(x => x.QuartoId == quarto.QuartoId).ToList())
{
for (DateTime? DataI = reserva.DataIni; DataI <= reserva.DataFim; DataI = DataI.Value.AddDays(1))
{
if (DataI.Value.Month == Mes)
{
Row[DataI.Value.Day.ToString()] = "O";
}
}
}
//
TableReserva.Rows.Add(Row);
}
GridReserva.DataSource = TableReserva;
GridReserva.DataBind();
}
}
protected int DiaFim(int Mes, int Ano)
{
int Dia = 31;
switch (Mes)
{
case 2:
{
if (Ano % 4 == 0) //Ano Bissesto ...
{
Dia = 29;
}
else
{
Dia = 28;
}
break;
}
case 4:
case 6:
case 9:
case 11:
{
Dia = 30;
break;
}
}
return Dia;
}
protected void RowSet(ref DataRow Row, int Mes, int Ano)
{
for (int d = 1; d <= DiaFim(Mes, Ano); d++)
{
Row[d.ToString()] = "L";
}
}
protected void Layout(ref DataTable Table, int Mes, int Ano)
{
Table.Columns.Clear();
Table.Rows.Clear();
Table.Columns.Add("Quartos");
for (int d = 1; d <= DiaFim(Mes, Ano); d++)
{
Table.Columns.Add(d.ToString());
}
}
}
}Esse código "Logico" pode ser melhorado mas, já apresentou esse resultado:
Amigo isso tudo pode ser melhorado como eu já disse layout cores e tudo mas, me atentei a tirar sua duvida!
Eu fiz com Entity, mas, se pode fazer da maneira trivial com Lista ou DataTable ou DataSet!!!
- Editado Fulvio Cezar Canducci Dias sexta-feira, 13 de dezembro de 2013 01:09
- Marcado como Resposta Anderson Mac sexta-feira, 13 de dezembro de 2013 01:40
Todas as Respostas
-
Amigo qual sua dificuldade???
Assim: se não ta entendendo como fazer isso no Gridview ???
Bom Exemplo:
Bom em cima seria minha camada de persistência e logo abaixo o banco SQL Server com a Tabela reserva preenchida com algumas datas ...
CREATE TABLE [dbo].[Quartos]( [QuartoId] [int] IDENTITY(1,1) NOT NULL, [QuartoNumero] [int] NOT NULL, CONSTRAINT [PK_Quarto] PRIMARY KEY CLUSTERED ( [QuartoId] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] CREATE TABLE [dbo].[Reservas]( [ReservaId] [int] IDENTITY(1,1) NOT NULL, [QuartoId] [int] NULL, [DataIni] [smalldatetime] NULL, [DataFim] [smalldatetime] NULL, CONSTRAINT [PK_Reservas_1] PRIMARY KEY CLUSTERED ( [ReservaId] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] ALTER TABLE [dbo].[Reservas] WITH CHECK ADD CONSTRAINT [FK_Reservas_Quarto] FOREIGN KEY([QuartoId]) REFERENCES [dbo].[Quartos] ([QuartoId]) ALTER TABLE [dbo].[Reservas] CHECK CONSTRAINT [FK_Reservas_Quarto]
Agora é como eu criei as tabelas - Script Create Table Reservas e Quartos
OK!
Coloquei um GridView na ASPX assim:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebReservas.aspx.cs" Inherits="WebApplication1.WebReservas" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:GridView runat="server" ID="GridReserva" Caption="Dias" CaptionAlign="Bottom" EmptyDataText="Sem Registros ..." ShowFooter="True" ShowHeaderWhenEmpty="True"></asp:GridView> </div> </form> </body> </html>
E a codificação dessa página .cs ficou assim:
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using WebApplication1.Models;
namespace WebApplication1
{
public partial class WebReservas : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GerarReserva();
}
}
protected void GerarReserva()
{
//Variaveis que você pode mudar o seu sistema!!!
int Mes = DateTime.Now.Month;
int Ano = DateTime.Now.Year;
DataTable TableReserva = new DataTable();
Layout(ref TableReserva, Mes, Ano);
using (MSDNUserEntities Db = new MSDNUserEntities())
{
IList<Reservas> reservas = Db.Reservas.AsNoTracking().Where(x => x.DataIni.Value.Month == Mes || x.DataFim.Value.Month == Mes).ToList();
IList<Quartos> quartos = Db.Quartos.AsNoTracking().ToList();
foreach (Quartos quarto in quartos)
{
DataRow Row = TableReserva.NewRow();
RowSet(ref Row, Mes, Ano);
Row["Quartos"] = quarto.QuartoNumero;
//
foreach (Reservas reserva in reservas.Where(x => x.QuartoId == quarto.QuartoId).ToList())
{
for (DateTime? DataI = reserva.DataIni; DataI <= reserva.DataFim; DataI = DataI.Value.AddDays(1))
{
if (DataI.Value.Month == Mes)
{
Row[DataI.Value.Day.ToString()] = "O";
}
}
}
//
TableReserva.Rows.Add(Row);
}
GridReserva.DataSource = TableReserva;
GridReserva.DataBind();
}
}
protected int DiaFim(int Mes, int Ano)
{
int Dia = 31;
switch (Mes)
{
case 2:
{
if (Ano % 4 == 0) //Ano Bissesto ...
{
Dia = 29;
}
else
{
Dia = 28;
}
break;
}
case 4:
case 6:
case 9:
case 11:
{
Dia = 30;
break;
}
}
return Dia;
}
protected void RowSet(ref DataRow Row, int Mes, int Ano)
{
for (int d = 1; d <= DiaFim(Mes, Ano); d++)
{
Row[d.ToString()] = "L";
}
}
protected void Layout(ref DataTable Table, int Mes, int Ano)
{
Table.Columns.Clear();
Table.Rows.Clear();
Table.Columns.Add("Quartos");
for (int d = 1; d <= DiaFim(Mes, Ano); d++)
{
Table.Columns.Add(d.ToString());
}
}
}
}Esse código "Logico" pode ser melhorado mas, já apresentou esse resultado:
Amigo isso tudo pode ser melhorado como eu já disse layout cores e tudo mas, me atentei a tirar sua duvida!
Eu fiz com Entity, mas, se pode fazer da maneira trivial com Lista ou DataTable ou DataSet!!!
- Editado Fulvio Cezar Canducci Dias sexta-feira, 13 de dezembro de 2013 01:09
- Marcado como Resposta Anderson Mac sexta-feira, 13 de dezembro de 2013 01:40
-
-
-
Com isso então aumentou o código que são as duas classes modelos:
using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace Util { public partial class Reservas { public int ReservaId { get; set; } public Nullable<int> QuartoId { get; set; } public Nullable<System.DateTime> DataIni { get; set; } public Nullable<System.DateTime> DataFim { get; set; } } public partial class Quartos { public int QuartoId { get; set; } public int QuartoNumero { get; set; } } }
Elas deverão existe então em algum lugar no seu projeto
Código cs total:
using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using WebApplication1.Models; namespace WebApplication1 { public partial class WebReservas : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { GerarReservaAdoNet(); } } protected void GerarReserva() { //Variaveis que você pode mudar o seu sistema!!! int Mes = DateTime.Now.Month; int Ano = DateTime.Now.Year; DataTable TableReserva = new DataTable(); Layout(ref TableReserva, Mes, Ano); using (MSDNUserEntities Db = new MSDNUserEntities()) { IList<Reservas> reservas = Db.Reservas.AsNoTracking().Where(x => x.DataIni.Value.Month == Mes || x.DataFim.Value.Month == Mes).ToList(); IList<Quartos> quartos = Db.Quartos.AsNoTracking().ToList(); foreach (Quartos quarto in quartos) { DataRow Row = TableReserva.NewRow(); RowSet(ref Row, Mes, Ano); Row["Quartos"] = quarto.QuartoNumero; // foreach (Reservas reserva in reservas.Where(x => x.QuartoId == quarto.QuartoId).ToList()) { for (DateTime? DataI = reserva.DataIni; DataI <= reserva.DataFim; DataI = DataI.Value.AddDays(1)) { if (DataI.Value.Month == Mes) { Row[DataI.Value.Day.ToString()] = "O"; } } } // TableReserva.Rows.Add(Row); } GridReserva.DataSource = TableReserva; GridReserva.DataBind(); } } protected void GerarReservaAdoNet() { //Variaveis que você pode mudar o seu sistema!!! int Mes = DateTime.Now.Month; int Ano = DateTime.Now.Year; ///////////////////////////////////////////////////////////////////////////////// //Apoio Variaveis DataTable TableReserva = new DataTable(); IList<Util.Quartos> quartos = null; IList<Util.Reservas> reservas = null; //Layout Layout(ref TableReserva, Mes, Ano); ///////////////////////////////////////////////////////////////////////////////// //conexao Ado.Net String ConexaoString = @"Data Source=.\SQLEXPRESS;Initial Catalog=MSDNUser;Persist Security Info=True;User ID=sa;Password=senha;MultipleActiveResultSets=True;Application Name=EntityFramework"; using (SqlConnection Db = new SqlConnection(ConexaoString)) { Db.Open(); ///////////////////////////////////////////////////////////////////////////////// //Carregando Quartos using (SqlCommand CommadQuarto = Db.CreateCommand()) { CommadQuarto.CommandType = CommandType.Text; CommadQuarto.CommandText = "SELECT QuartoId, QuartoNumero FROM Quartos"; using (SqlDataReader ReaderQuarto = CommadQuarto.ExecuteReader()) { if (ReaderQuarto.HasRows){ quartos = new List<Util.Quartos>(); while (ReaderQuarto.Read()) { Util.Quartos quarto = new Util.Quartos(); quarto.QuartoId = ReaderQuarto.GetInt32(0); quarto.QuartoNumero = ReaderQuarto.GetInt32(1); quartos.Add(quarto); } } ReaderQuarto.Close(); } } ///////////////////////////////////////////////////////////////////////////////// //Carregando Reserva using (SqlCommand CommadReserva = Db.CreateCommand()) { CommadReserva.CommandType = CommandType.Text; CommadReserva.CommandText = "SELECT ReservaId, QuartoId, DataIni, DataFim FROM Reservas WHERE (MONTH(DataIni) = @Mes OR MONTH(DataFim) = @Mes) AND YEAR(DataIni)=@Ano"; CommadReserva.Parameters.Add("@Mes", SqlDbType.Int).Value = Mes; CommadReserva.Parameters.Add("@Ano", SqlDbType.Int).Value = Ano; using (SqlDataReader ReaderReserva = CommadReserva.ExecuteReader()) { if (ReaderReserva.HasRows) { reservas = new List<Util.Reservas>(); while (ReaderReserva.Read()) { Util.Reservas reserva = new Util.Reservas(); reserva.ReservaId = ReaderReserva.GetInt32(0); reserva.QuartoId = ReaderReserva.GetInt32(1); reserva.DataIni = ReaderReserva.GetDateTime(2); reserva.DataFim = ReaderReserva.GetDateTime(3); reservas.Add(reserva); } } } } ///////////////////////////////////////////////////////////////////////////////// //Trabalhando e Construindo o DataTable com Quartos e Reserva foreach (Util.Quartos quarto in quartos) { DataRow Row = TableReserva.NewRow(); RowSet(ref Row, Mes, Ano); Row["Quartos"] = quarto.QuartoNumero; // foreach (Util.Reservas reserva in reservas.Where(x => x.QuartoId == quarto.QuartoId).ToList()) { for (DateTime? DataI = reserva.DataIni; DataI <= reserva.DataFim; DataI = DataI.Value.AddDays(1)) { if (DataI.Value.Month == Mes) { Row[DataI.Value.Day.ToString()] = "O"; } } } // TableReserva.Rows.Add(Row); } ///////////////////////////////////////////////////////////////////////////////// //Carregando a Grid GridReserva.DataSource = TableReserva; GridReserva.DataBind(); ///////////////////////////////////////////////////////////////////////////////// //fechando conexao Db.Close(); } } protected int DiaFim(int Mes, int Ano) { int Dia = 31; switch (Mes) { case 2: { if (Ano % 4 == 0) //Ano Bissesto ... { Dia = 29; } else { Dia = 28; } break; } case 4: case 6: case 9: case 11: { Dia = 30; break; } } return Dia; } protected void RowSet(ref DataRow Row, int Mes, int Ano) { for (int d = 1; d <= DiaFim(Mes, Ano); d++) { Row[d.ToString()] = "L"; } } protected void Layout(ref DataTable Table, int Mes, int Ano) { Table.Columns.Clear(); Table.Rows.Clear(); Table.Columns.Add("Quartos"); for (int d = 1; d <= DiaFim(Mes, Ano); d++) { Table.Columns.Add(d.ToString()); } } } }
Perceba que agora tem um rotina a mais e ela é chamada no Load da Pagina esse:
protected void GerarReservaAdoNet() { //Variaveis que você pode mudar o seu sistema!!! int Mes = DateTime.Now.Month; int Ano = DateTime.Now.Year; ///////////////////////////////////////////////////////////////////////////////// //Apoio Variaveis DataTable TableReserva = new DataTable(); IList<Util.Quartos> quartos = null; IList<Util.Reservas> reservas = null; //Layout Layout(ref TableReserva, Mes, Ano); ///////////////////////////////////////////////////////////////////////////////// //conexao Ado.Net String ConexaoString = @"Data Source=.\SQLEXPRESS;Initial Catalog=MSDNUser;Persist Security Info=True;User ID=sa;Password=senha;MultipleActiveResultSets=True;Application Name=EntityFramework"; using (SqlConnection Db = new SqlConnection(ConexaoString)) { Db.Open(); ///////////////////////////////////////////////////////////////////////////////// //Carregando Quartos using (SqlCommand CommadQuarto = Db.CreateCommand()) { CommadQuarto.CommandType = CommandType.Text; CommadQuarto.CommandText = "SELECT QuartoId, QuartoNumero FROM Quartos"; using (SqlDataReader ReaderQuarto = CommadQuarto.ExecuteReader()) { if (ReaderQuarto.HasRows){ quartos = new List<Util.Quartos>(); while (ReaderQuarto.Read()) { Util.Quartos quarto = new Util.Quartos(); quarto.QuartoId = ReaderQuarto.GetInt32(0); quarto.QuartoNumero = ReaderQuarto.GetInt32(1); quartos.Add(quarto); } } ReaderQuarto.Close(); } } ///////////////////////////////////////////////////////////////////////////////// //Carregando Reserva using (SqlCommand CommadReserva = Db.CreateCommand()) { CommadReserva.CommandType = CommandType.Text; CommadReserva.CommandText = "SELECT ReservaId, QuartoId, DataIni, DataFim FROM Reservas WHERE (MONTH(DataIni) = @Mes OR MONTH(DataFim) = @Mes) AND YEAR(DataIni)=@Ano"; CommadReserva.Parameters.Add("@Mes", SqlDbType.Int).Value = Mes; CommadReserva.Parameters.Add("@Ano", SqlDbType.Int).Value = Ano; using (SqlDataReader ReaderReserva = CommadReserva.ExecuteReader()) { if (ReaderReserva.HasRows) { reservas = new List<Util.Reservas>(); while (ReaderReserva.Read()) { Util.Reservas reserva = new Util.Reservas(); reserva.ReservaId = ReaderReserva.GetInt32(0); reserva.QuartoId = ReaderReserva.GetInt32(1); reserva.DataIni = ReaderReserva.GetDateTime(2); reserva.DataFim = ReaderReserva.GetDateTime(3); reservas.Add(reserva); } } } } ///////////////////////////////////////////////////////////////////////////////// //Trabalhando e Construindo o DataTable com Quartos e Reserva foreach (Util.Quartos quarto in quartos) { DataRow Row = TableReserva.NewRow(); RowSet(ref Row, Mes, Ano); Row["Quartos"] = quarto.QuartoNumero; // foreach (Util.Reservas reserva in reservas.Where(x => x.QuartoId == quarto.QuartoId).ToList()) { for (DateTime? DataI = reserva.DataIni; DataI <= reserva.DataFim; DataI = DataI.Value.AddDays(1)) { if (DataI.Value.Month == Mes) { Row[DataI.Value.Day.ToString()] = "O"; } } } // TableReserva.Rows.Add(Row); } ///////////////////////////////////////////////////////////////////////////////// //Carregando a Grid GridReserva.DataSource = TableReserva; GridReserva.DataBind(); ///////////////////////////////////////////////////////////////////////////////// //fechando conexao Db.Close(); } }
OK!
Obs: Olhe a ConexaoString e altere para sua ai!
- Editado Fulvio Cezar Canducci Dias sábado, 14 de dezembro de 2013 15:52
-
-
Amigão...
La vou eu mais uma vez te incomodar...
Depois de muita tentativa, conseguir fazer ele rodar em Entity, porém... quando comecei a criar o sistema, não fiz a relação de tabelas. Eu gostaria apenas de trabalhar com a tabela Reserva. Ja fiz de tudo aqui, mas não consegui.
Vou tentar te explicar o que eu to tentando fazer.
Na minha tabela, tenho um campo chamado quarto do tipo varchar, nele salvo os nomes dos quartos de nomes(Israel,França,Italia), eu quaria criar uma listagem exatamente conforme você criou, só que ao invés de listar os numeros dos quartos, eles apareçam pelo nomes tematicos, isso é possível ? Confesso que tentei de tudo.
Será que vc pode me ajudar mais uma vez ?
Se sim, pode postar como entity mesmo, adorei esta ferramenta, muito mais pratica.
Desculpe e obrigado pela sua atenção !
Abraços
Jimi Anderson
-
Você vai ter que fazer um JOIN nas duas entidades mesmo que elas não tenham relação!
Exemplo do meu Blog:
Lambda Expression
e Linq comum!
http://fulviocanducci.wordpress.com/2010/12/04/ado-net-entity-data-model-com-inner-join/
-
Oi Flavio,
Amigão... consegui aqui mesmo com 02 tabelas. Me ajudou muito !
Agora prometo ser a ultima coisa. Como faço por exemplo; Caso seja "O" (Ocupado) a celula apareça em vermelho.
Achei varios exemplos aqui, mais apenas para a linha inteira. Pode me ajudar nessa ?
Obrigado.
Anderson
Jimi Anderson
-
Adicione mais essa rotina
protected void ColorGrid() { foreach (GridViewRow Row in GridReserva.Rows) { for (int i = 0; i < Row.Cells.Count; i++) { //Compara Rows Com "O" if (Row.Cells[i].Text.ToLower().Equals("o")) { Row.Cells[i].BackColor = Color.Red; } //comparar Rows com "L" else if (Row.Cells[i].Text.ToLower().Equals("l")) { Row.Cells[i].BackColor = Color.GreenYellow; } } } }
E chama ela no final da outro rotina: GerarReservaAdoNet()
///////////////////////////////////////////////////////////////////////////////// //fechando conexao Db.Close(); } ColorGrid(); // aqui ... }
-
Ou!
Adicione um evento RowDataBound no seu GridView e vai no código e adicione esse exemplo de código:
protected void GridReserva_RowDataBound(object sender, GridViewRowEventArgs e) { foreach (TableCell Cell in e.Row.Cells) { if (Cell.Text.ToLower().Equals("o")) { Cell.BackColor = Color.Red; } } }
Qualquer um dos dois resultado no que você espera!
-