datagridview y combobox

26/08/2007 - 19:14 por Jordi Maycas | Informe spam
Hola!

Bueno ahora me surge el como podria modificar una de las columnas, para que
en vez de haber el tipic textbox, haya un combobox, y sus items sean el
resultado de una select.

Mas claro... datagrid con pedidos a mayoristas, y hay q dar de alta un nuevo
pedido, a un mayorista X; en vez de tener que teclear el CIF o nombre, pues
que te salga un combo.. total habran 2 o 3 mayoristas, y siempre sera mas
rapido.

He mirado googleando, pero con librerias de terceros...

Preguntas similare

Leer las respuestas

#1 Jordi Maycas
26/08/2007 - 19:34 | Informe spam
hay algo mas simple?
http://msdn2.microsoft.com/en-us/li...olumn.aspx

"Jordi Maycas" escribió en el mensaje
news:
Hola!

Bueno ahora me surge el como podria modificar una de las columnas, para
que en vez de haber el tipic textbox, haya un combobox, y sus items sean
el resultado de una select.

Mas claro... datagrid con pedidos a mayoristas, y hay q dar de alta un
nuevo pedido, a un mayorista X; en vez de tener que teclear el CIF o
nombre, pues que te salga un combo.. total habran 2 o 3 mayoristas, y
siempre sera mas rapido.

He mirado googleando, pero con librerias de terceros...


Respuesta Responder a este mensaje
#2 Jordi Maycas
26/08/2007 - 19:42 | Informe spam
solucionado... desde el mismo ide, se puede hacer un edittable, apretando
boton derecho en el dbgrid, y te dice el tipo de celda q quieres y el orgien
de datos.


"Jordi Maycas" escribió en el mensaje
news:%
hay algo mas simple?
http://msdn2.microsoft.com/en-us/li...olumn.aspx

"Jordi Maycas" escribió en el mensaje
news:
Hola!

Bueno ahora me surge el como podria modificar una de las columnas, para
que en vez de haber el tipic textbox, haya un combobox, y sus items sean
el resultado de una select.

Mas claro... datagrid con pedidos a mayoristas, y hay q dar de alta un
nuevo pedido, a un mayorista X; en vez de tener que teclear el CIF o
nombre, pues que te salga un combo.. total habran 2 o 3 mayoristas, y
siempre sera mas rapido.

He mirado googleando, pero con librerias de terceros...






Respuesta Responder a este mensaje
#3 Jordi Maycas
26/08/2007 - 20:40 | Informe spam
curioso... resulta que una vez le he validado el dbgrid, me actualiza la
tabla, pero en el campo en donde estaba el combobox, me lo pone en blanco,y
tendria que ponerme el identificador correspondiente al item del combobox
seleccionado, es decir, en el combobox saldran mayoristas (unos dos o tres).
si selecciono el mayorista1, me tendria que salvar en la tabla el cif del
mayorista1, que esta en la tabla mayoristas. Teniendo en cuenta que el
dbgrid es de la tabla pedidos, y que en la misma hay un campo mayorista como
clave foranea.

Espero haber sido claro.

El tema esta en que:

Una vez se ha dicho que una columna, sera de un tipo combo, y de que de
donde tiene que sacar los items para rellenarlo, ¿donde se le dice que es lo
que tiene que salvar en la bbdd, una vez se selecciona un elemento del
combo?

"Jordi Maycas" escribió en el mensaje
news:%
solucionado... desde el mismo ide, se puede hacer un edittable, apretando
boton derecho en el dbgrid, y te dice el tipo de celda q quieres y el
orgien de datos.


"Jordi Maycas" escribió en el mensaje
news:%
hay algo mas simple?
http://msdn2.microsoft.com/en-us/li...olumn.aspx

"Jordi Maycas" escribió en el mensaje
news:
Hola!

Bueno ahora me surge el como podria modificar una de las columnas, para
que en vez de haber el tipic textbox, haya un combobox, y sus items sean
el resultado de una select.

Mas claro... datagrid con pedidos a mayoristas, y hay q dar de alta un
nuevo pedido, a un mayorista X; en vez de tener que teclear el CIF o
nombre, pues que te salga un combo.. total habran 2 o 3 mayoristas, y
siempre sera mas rapido.

He mirado googleando, pero con librerias de terceros...










Respuesta Responder a este mensaje
#4 Luis Miguel Blanco
27/08/2007 - 07:52 | Informe spam
Hola Jordi

No estoy muy seguro de si esto será exactamente lo que necesitas, pero
prueba a utilizar el evento DataGridView.CellEndEdit, en el que compruebas si
la columna que se está manejando es la correspondiente al combo. En caso
afirmativo, obtienes el valor que necesitas actualizar en el DataSet, el
registro sobre el que has de actualizar dicho valor, y realizas la
actualización manualmente de forma similar a como puedes ver en el siguiente
bloque de código de ejemplo:

//
private void grdDatos_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
// después de editar la celda de la columna de tipo ComboBox
// actualizamos el nuevo valor en el campo del DataSet
// subyacente del DataGridView
if (this.grdDatos.Columns[e.ColumnIndex].Name == "colComboBox")
{
// obtener el valor a actualizar
int nCategoryID =
(int)this.grdDatos.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;

// obtener el registro a actualizar
DataRow drFilaProducto =
((DataSet)this.grdDatos.DataSource).Tables["Products"].Rows[e.RowIndex];

// actualizar el campo
drFilaProducto.BeginEdit();
drFilaProducto["CategoryID"] =
this.grdDatos.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;
drFilaProducto.EndEdit();
}
}
//

Espero que te sirva de ayuda.

Un saludo
Luis Miguel Blanco
http://www.dotnetmania.com


"Jordi Maycas" wrote:

curioso... resulta que una vez le he validado el dbgrid, me actualiza la
tabla, pero en el campo en donde estaba el combobox, me lo pone en blanco,y
tendria que ponerme el identificador correspondiente al item del combobox
seleccionado, es decir, en el combobox saldran mayoristas (unos dos o tres).
si selecciono el mayorista1, me tendria que salvar en la tabla el cif del
mayorista1, que esta en la tabla mayoristas. Teniendo en cuenta que el
dbgrid es de la tabla pedidos, y que en la misma hay un campo mayorista como
clave foranea.

Espero haber sido claro.

El tema esta en que:

Una vez se ha dicho que una columna, sera de un tipo combo, y de que de
donde tiene que sacar los items para rellenarlo, ¿donde se le dice que es lo
que tiene que salvar en la bbdd, una vez se selecciona un elemento del
combo?

"Jordi Maycas" escribió en el mensaje
news:%
> solucionado... desde el mismo ide, se puede hacer un edittable, apretando
> boton derecho en el dbgrid, y te dice el tipo de celda q quieres y el
> orgien de datos.
>
>
> "Jordi Maycas" escribió en el mensaje
> news:%
>> hay algo mas simple?
>> http://msdn2.microsoft.com/en-us/li...olumn.aspx
>>
>> "Jordi Maycas" escribió en el mensaje
>> news:
>>> Hola!
>>>
>>> Bueno ahora me surge el como podria modificar una de las columnas, para
>>> que en vez de haber el tipic textbox, haya un combobox, y sus items sean
>>> el resultado de una select.
>>>
>>> Mas claro... datagrid con pedidos a mayoristas, y hay q dar de alta un
>>> nuevo pedido, a un mayorista X; en vez de tener que teclear el CIF o
>>> nombre, pues que te salga un combo.. total habran 2 o 3 mayoristas, y
>>> siempre sera mas rapido.
>>>
>>> He mirado googleando, pero con librerias de terceros...
>>>
>>>
>>
>>
>
>



Respuesta Responder a este mensaje
#5 Jordi Maycas
27/08/2007 - 15:13 | Informe spam
En principio he puesto un breakpoint en esa funcion, pero curiosamente no
pasa por ahi nunca... seguire probando y revisare que eventos produce un
dbgrid de esos.

Por otro lado, algo que me confundio pero que realmente no implica nada en
cuanto a funcionamiento, pero si que no queda bien, es que si por error hago
click en el titulo de las columnas del datagridview, me sale como una flecha
mirando abajo, como si fuera un combo, pero sin desplegarse, y si le vuelvo
a hacer click cambia la orientacion de la misma.

curioso

"Luis Miguel Blanco" escribió
en el mensaje news:
Hola Jordi

No estoy muy seguro de si esto será exactamente lo que necesitas, pero
prueba a utilizar el evento DataGridView.CellEndEdit, en el que compruebas
si
la columna que se está manejando es la correspondiente al combo. En caso
afirmativo, obtienes el valor que necesitas actualizar en el DataSet, el
registro sobre el que has de actualizar dicho valor, y realizas la
actualización manualmente de forma similar a como puedes ver en el
siguiente
bloque de código de ejemplo:

//
private void grdDatos_CellEndEdit(object sender, DataGridViewCellEventArgs
e)
{
// después de editar la celda de la columna de tipo ComboBox
// actualizamos el nuevo valor en el campo del DataSet
// subyacente del DataGridView
if (this.grdDatos.Columns[e.ColumnIndex].Name == "colComboBox")
{
// obtener el valor a actualizar
int nCategoryID > (int)this.grdDatos.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;

// obtener el registro a actualizar
DataRow drFilaProducto > ((DataSet)this.grdDatos.DataSource).Tables["Products"].Rows[e.RowIndex];

// actualizar el campo
drFilaProducto.BeginEdit();
drFilaProducto["CategoryID"] > this.grdDatos.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;
drFilaProducto.EndEdit();
}
}
//

Espero que te sirva de ayuda.

Un saludo
Luis Miguel Blanco
http://www.dotnetmania.com


"Jordi Maycas" wrote:

curioso... resulta que una vez le he validado el dbgrid, me actualiza la
tabla, pero en el campo en donde estaba el combobox, me lo pone en
blanco,y
tendria que ponerme el identificador correspondiente al item del combobox
seleccionado, es decir, en el combobox saldran mayoristas (unos dos o
tres).
si selecciono el mayorista1, me tendria que salvar en la tabla el cif del
mayorista1, que esta en la tabla mayoristas. Teniendo en cuenta que el
dbgrid es de la tabla pedidos, y que en la misma hay un campo mayorista
como
clave foranea.

Espero haber sido claro.

El tema esta en que:

Una vez se ha dicho que una columna, sera de un tipo combo, y de que de
donde tiene que sacar los items para rellenarlo, ¿donde se le dice que es
lo
que tiene que salvar en la bbdd, una vez se selecciona un elemento del
combo?

"Jordi Maycas" escribió en el mensaje
news:%
> solucionado... desde el mismo ide, se puede hacer un edittable,
> apretando
> boton derecho en el dbgrid, y te dice el tipo de celda q quieres y el
> orgien de datos.
>
>
> "Jordi Maycas" escribió en el mensaje
> news:%
>> hay algo mas simple?
>> http://msdn2.microsoft.com/en-us/li...olumn.aspx
>>
>> "Jordi Maycas" escribió en el mensaje
>> news:
>>> Hola!
>>>
>>> Bueno ahora me surge el como podria modificar una de las columnas,
>>> para
>>> que en vez de haber el tipic textbox, haya un combobox, y sus items
>>> sean
>>> el resultado de una select.
>>>
>>> Mas claro... datagrid con pedidos a mayoristas, y hay q dar de alta
>>> un
>>> nuevo pedido, a un mayorista X; en vez de tener que teclear el CIF o
>>> nombre, pues que te salga un combo.. total habran 2 o 3 mayoristas, y
>>> siempre sera mas rapido.
>>>
>>> He mirado googleando, pero con librerias de terceros...
>>>
>>>
>>
>>
>
>



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida