En C# lleno un combobox desde un bd, pero necesito adicionarle un dato en blanco en la primera posicion de manera que algunas veces pueda seleccionar ese dato en blanco para que no haya nada en el combobox.
Como puedo hacer eso???
Chao y Gracias

| |||
Como adicino un item en blanco a un combobox Hola En C# lleno un combobox desde un bd, pero necesito adicionarle un dato en blanco en la primera posicion de manera que algunas veces pueda seleccionar ese dato en blanco para que no haya nada en el combobox. Como puedo hacer eso??? Chao y Gracias ![]()
__________________ J-.-`.:: |
| |||
Yo trabajo con vb.net pero será similar. Una de las formas puede ser que en las select mediante la cual cargas el combo pongas por ejemplo: select -1 as id, null as descripcion from tabla union select id, descripcion from tabla. asi la primera parte de la consulta hace que te cargue una línea en blanco sin perjudicar la BD. Otra manera más limpia es coger el datatable y hacer esto después de cargarlo y antes de asociarlo al combo: dtNumero.Rows.InsertAt(dtNumero.NewRow(), 0) con esto le insertas una nueva fila vacía en la posición que le indicas, que como le hemos puesto 0 es la primera posición. Espero que te sirva. |
| |||
Gracias alarar Este em mi SQL con que lleno el combobox "SELECT sCustomerName, sCustomerID FROM tblCustomers order by sCustomerName ASC") como encajaria tal codigo que me escribes, Gracias de nuevo
__________________ J-.-`.:: |
| |||
Esto es lo que tienes tú: "SELECT sCustomerName, sCustomerID FROM tblCustomers order by sCustomerName ASC" yo lo dejaría así: "select null as scustomername, -1 as scustomerid from tblcustomers union SELECT sCustomerName, sCustomerID FROM tblCustomers order by sCustomerName " quedaría así, a ver si te vale. |
| |||
Hola Julian, Yo lo que hago es lo siguiente: Realizo la consulta de base de datos y después de rellenar el combo con dicha información, le inserto un primer elemento en blanco. De esta forma, la select es más limpia, sin ninguna unión. SqlConnection oConn = Datos.abrirConexion; DataSet ds = new DataSet(); SqlDataAdapter da1 = new SqlDataAdapter("CENTROS",oConn); da1.Fill(ds,"Centros"); this.cboCenTrab.DataSource = ds.Tables["Centros"].DefaultView; this.cboCenTrab.DataBind(); ListItem Elemento = new ListItem("","-1"); this.cboCenTrab.Items.Insert(0,Elemento); Espero que te sirva. Un saludo Korrikalari |
| |||
Sí es verdad que la manera en que dices tú es más limpia korrikalari(euskaldun eh?), de hecho, ya indicaba que había otra forma de hacerlo, pero no lo hago como tú(pero viene a ser parecido): Otra manera más limpia es coger el datatable y hacer esto después de cargarlo y antes de asociarlo al combo: dtNumero.Rows.InsertAt(dtNumero.NewRow(), 0) De esta manera en vez de al combo directamente se lo asigno al datatable, pero supongo que es todavía más limpio hacerlo a tu manera no?contesta si puedes vale?que estas cosas me interesan para ir mejorando, gracias por el correctivo. Eskerrik asko!!! ![]() |
| |||
Me parece más interesante no tocar el datatable, por si en un momento dado se crea alguna relación entre los datatables y pudiera haber problemas de integridad de datos. Pero bueno, que es otra forma también correcta de hacerlo. Agur ![]() |