ASP.NET - Color a Texto de un DataList

 
Vista:
sin imagen de perfil
Val: 12
Ha aumentado su posición en 2 puestos en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Color a Texto de un DataList

Publicado por Pablinibiris (6 intervenciones) el 02/08/2019 21:14:59
Saludos Cordiales Amigos,

Tengo una consulta se puede dar color a los textos que estan en un DataList, les explico tengo este datalist cargado horas y estado :

8:00 - Disponible

8:30 - Ocupado

9:00 - Disponible

La cosa es que deseo colocar a todos los que estan ocupados de color rojo y realmente no se como hacerlo, si alguien me hecha la manito les agradeceria un monton.

Estoy trabajando con visual studio 2019. GRACIAS

PD: Me olvide de citar que es en ASPX o ASP.NET
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 12
Ha aumentado su posición en 2 puestos en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Color a Texto de un DataList

Publicado por Pablinibiris (6 intervenciones) el 02/08/2019 22:25:53
Gracias YAMIL BRACHO,

Pero otra cosa que me olvide es en VB, lo quise hacer, traspasando al código VB pero realmente no se entiende muy bien. Me podrías ayudar tal vez con una explicación?

Voy a ser un poco mas especifico, las horas y el estado las cargo Manualmente, porqeu antes de eso hago una serie de validaciones y dependiendo de eso la cargo al Datalist

1
2
3
4
5
6
7
8
9
if validacion then
      'Cargamos Ocupado
       DataListHora.Items.Add(Horas(i) & " - Ocupado")
 
else
 
'Cargamos libre
       DataListHora.Items.Add(Horas(i) & " - Libre")
end if

Gracias de antemano
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 56
Bronce
Ha mantenido su posición en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Color a Texto de un DataList

Publicado por Yamil (1136 intervenciones) el 02/08/2019 22:39:49
Ahi la parte importante es el evento ItemDataBound
Aqui tienes un ejemplo en VB.NET
https://www.aspforums.net/Threads/309974/Change-BackGround-color-of-DataList-Item-based-on-condition-in-ASPNet/

Fijate que es mas facil que crees una estructura que uses como delo para tu dataList. En el ejemplo que te menviono uasn un dataList en memoria y puedes usar el mismo enfoque. Guardas la informacion e un un DataTable
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 12
Ha aumentado su posición en 2 puestos en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Color a Texto de un DataList

Publicado por pablinibiris (6 intervenciones) el 02/08/2019 23:08:05
YAMIL,

gracias por tu aporte lo voy a probar y te aviso...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 12
Ha aumentado su posición en 2 puestos en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Color a Texto de un DataList

Publicado por Pablo Andres (6 intervenciones) el 05/08/2019 18:31:26
error


Saludos Yamil,

Ahora me sale un error, en esta parte de aqui:

ComboHora.DataBind()

ERROR:
System.InvalidCastException: 'No se puede convertir un objeto de tipo 'System.EventArgs' al tipo 'System.Web.UI.WebControls.DataListItemEventArgs'.'

Me dice del evento pero tampoco existe ItemDataBound, que puedo hacer?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 56
Bronce
Ha mantenido su posición en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Color a Texto de un DataList

Publicado por Yamil Bracho (1136 intervenciones) el 05/08/2019 18:59:37
Noi se ve el prologo del metodo donde estas llenadno el combo pero creo que lo estan haciendo directamente, sin usar un "modelo". Es decir, una dataTable y luego le asignas este DataTable como dataSource de tu DataList y alli si puedes usar el metodo DataBind()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 56
Bronce
Ha mantenido su posición en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Color a Texto de un DataList

Publicado por Yamil (1136 intervenciones) el 05/08/2019 20:02:14
Aqui tienes un ejemplito
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication4._Default" %>
 
<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">
    <asp:DataList ID="DataList1" runat="server" OnItemDataBound="DataList1_OnItemDataBound">
        <ItemTemplate>
            <table cellpadding="2" cellspacing="0" border="1" style="width: 300px; height: 100px; border: 1px; background-color: #FFFFFF">
                <tr>
                    <td>
                        <asp:Label ID="Label1" Text='<%# Eval("ID") %>' runat="server" /><br />
                        <asp:Label ID="Label2" Text='<%# Eval("Name") %>' runat="server" /><br />
                        <asp:Label ID="Label3" Text='<%# Eval("Status") %>' runat="server" /><br />
                    </td>
                </tr>
            </table>
        </ItemTemplate>
    </asp:DataList>
</asp:Content>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
using System;
using System.Data;
using System.Web.UI;
using System.Web.UI.WebControls;
 
namespace WebApplication4
{
    public partial class _Default : Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Bind();
            }
        }
 
        public void Bind()
        {
            DataTable table = new DataTable();
            table.Columns.Add("ID");
            table.Columns.Add("Name");
            table.Columns.Add("Status");
            table.Rows.Add("101", "Sachin Kumar", "Ocupado");
            table.Rows.Add("102", "Peter", "Ocupado");
            table.Rows.Add("103", "Ravi Kumar", "Libre");
            table.Rows.Add("104", "Irfan", "Ocupado");
            DataList1.DataSource = table;
            DataList1.DataBind();
        }
 
        protected void DataList1_OnItemDataBound(object sender, DataListItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                DataRowView dw = e.Item.DataItem as DataRowView;
                string status = dw.Row.ItemArray[2].ToString();
 
                //Label lbl = e.Item.FindControl("Label1") as Label;
                if ("Ocupado".Equals(status))
                {
                    Label lbl = e.Item.FindControl("Label1") as Label;
                    lbl.BackColor = System.Drawing.Color.Red;
                }
            }
        }
    }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 12
Ha aumentado su posición en 2 puestos en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Color a Texto de un DataList

Publicado por Pablinibiris (6 intervenciones) el 05/08/2019 23:08:17
Como dije anteriormente, hago una serie de validaciones, y dependiendo de eso cargo al datalis y no lo hago con un datatable si no con item.add
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 56
Bronce
Ha mantenido su posición en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Color a Texto de un DataList

Publicado por Yamil Bracho (1136 intervenciones) el 05/08/2019 23:43:23
ItemDataBound es llamado cuando enlazas data al control. No lo he probado con AdddItem pero deberia ser equivalente. Seria cuestion de que lo probaras paso a paso a ver por cada Additem va a ItemBound. Pero te recomiendo que crees un modelo y luego lo enlazes a tu DataList.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 12
Ha aumentado su posición en 2 puestos en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Color a Texto de un DataList

Publicado por Pablinibiris (6 intervenciones) el 05/08/2019 23:45:02
Gracias por tu recomendación, voy a tratar de hacerlo y te aviso...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar