Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   Colorear Renglones (http://www.forosdelweb.com/f29/colorear-renglones-391109/)

ElNo 05/05/2006 10:33

Colorear Renglones
 
Como puedo colorear los renglones de un datagrid dependiendo del valor de una de sus columnas?

pineda 05/05/2006 18:06

Colorear Renglones
 
Básicamente debes hacer una clase que en la que puedas modificar los TextBoxColumn.

Hace tiempo yo lo hice.. te paso un buen link para empezar:

http://syncfusion.com/FAQ/WindowsFor...44c.aspx#q745q

Había muchos ejemplos sobre ésto. También encontré un ejemplo muy interesante en microsoft, pero no recuerdo la dirección.

Pos si deseas buscarle un poco mas.

sagma 06/05/2006 08:56

colorear un renglon en el DG
 
Hola amigo como estas, yo tambien buscaba lo mismo, y encontre esto en la web. espero te sirva.

Código:

prueba a utilizar un estilo aplicado al datagrid· en primer lugar debes
crear un objeto datagridtablestyle y tantos objetos datagridtextboxcolumn
como columnas quieras mostrar en el grid‚ excepto en la columna a la que
quieres aplicar un color en base a una condición· para esta columna creas una
clase que herede de datagridtextboxcolumn y reemplazas el método paint()‚
añadiendo el código personalizado que modifique el color de fondo cuando se
cumpla la condición· te adjunto un ejemplo de código para que puedas probarlo
y hacer las modificaciones para tu caso:

'/////////////////////////////////////////////////
public class form1
inherits system.windows.forms.form

private sub form1_load(byval sender as system.object‚ byval e as
system.eventargs) handles mybase.load
dim oconnection as sqlconnection
dim odataadapter as sqldataadapter
dim odataset as dataset

oconnection = new
sqlconnection("server=localhost;database=northwind;uid=sa;pwd=")
odataadapter = new sqldataadapter("select
productid‚productname‚supplierid from products"‚ oconnection)
odataset = new dataset

oconnection.open()
odataadapter.fill(odataset‚ “products")
oconnection.close()

me.datagrid1.datasource = odataset
me.datagrid1.datamember = “products"

dim otablestyle as new datagridtablestyle
otablestyle.mappingname = “products"

dim oproductid as new datagridtextboxcolumn
oproductid.mappingname = “productid"
oproductid.headertext = “código"
oproductid.alignment = horizontalalignment.center

dim oproductname as new datagridtextboxcolumn
oproductname.mappingname = “productname"
oproductname.headertext = “nombre"

dim osupplierid as new dgtxtcolcolor
osupplierid.mappingname = “supplierid"
osupplierid.headertext = “proveedor"

otablestyle.gridcolumnstyles.addrange(new datagridcolumnstyle() _
{oproductid‚ oproductname‚ osupplierid})

me.datagrid1.tablestyles.add(otablestyle)
end sub
end class

'–––––––––––––––––––––––––––––––––
public class dgtxtcolcolor
inherits datagridtextboxcolumn

protected overloads overrides sub paint(byval g as
system.drawing.graphics‚ _
byval bounds as system.drawing.rectangle‚ _
byval source as system.windows.forms.currencymanager‚ _
byval rownum as integer‚ _
byval backbrush as system.drawing.brush‚ _
byval forebrush as system.drawing.brush‚ _
byval aligntoright as boolean)

dim obrush as solidbrush
dim ofiladatos as datarowview = source.list(rownum)

if ofiladatos("supplierid") = 3 then
obrush = new solidbrush(color.aquamarine)
else
obrush = backbrush
end if

mybase.paint(g‚ bounds‚ source‚ rownum‚ _
obrush‚ _
forebrush‚ _
aligntoright)
end sub
end class
'/////////////////////////////////////////////////

observa que para la columna del campo supplierid usamos en el datagrid una
clase propia‚ y en su evento paint() comprobamos el valor de dicho campo‚
cuando sea 3‚ le aplicamos un color de fondo distinto·

espero que te sea de utilidad·


freegirl 08/05/2006 06:23

http://www.elguille.info/colabora/NE...arDatagrid.htm


saludos!

ElNo 08/05/2006 14:53

Gracias
 
ok, muchas gracias a todos......


La zona horaria es GMT -6. Ahora son las 20:56.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.