Ver Mensaje Individual
  #2 (permalink)  
Antiguo 29/10/2004, 09:37
Avatar de lucxx
lucxx
 
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 321
Antigüedad: 20 años, 5 meses
Puntos: 0
A ver, ya voy con la solucion

Supongamos que tu dataset se llama ds, en el se carga una tabla con 2 campos (nombre y valor). Añadimos un nuevo registro a la tabla con los campos en blanco (notar que en este caso los dos son de tipo string),
y despues obtenemos una vista de la tabla, llamada "datosDrop", la cual ordenamos por el campo "valor" (para que salga primero el campo en blanco)
Código:
 
   Dim miRow as DataRow
   miRow = ds.Tables(0).NewRow()
   miRow("nombre") = ""
   miRow("valor") = ""
   ds.Tables(0).Rows.Add(miRow)
   
   datosDrop = ds.Tables(0).DefaultView
   datosDrop.Sort = "valor"
Después, realizamos el databind del dropDownList a la vista que hemos obtenido:
Código:
 
  ddl_regMes.DataSource = datosDrop
  ddl_regMes.DataTextField = "nombre"
  ddl_regMes.DataValueField = "valor"
  ddl_regMes.DataBind()
y ya está.

PD: para este caso, un dropdownlist que muestra los meses del año (campo nombre-> el nombre del mes, campo valor-> el numero de mes) yo los traigo de un fichero XML, por lo que una solucion mas simple es incluir el campo en blanco en el propio fichero XML:
Código:
 
<?xml version="1.0" encoding="iso-8859-1"?>
<meses>
 <mes>
  <nombre></nombre>
  <valor></valor>
 </mes>
 <mes>
  <nombre>Enero</nombre>
  <valor>1</valor>
 </mes>
 <mes>
  <nombre>Febrero</nombre>
  <valor>2</valor>
 </mes>
 <mes>
  <nombre>Marzo</nombre>
  <valor>3</valor>
 </mes>
 <mes>
  <nombre>Abril</nombre>
  <valor>4</valor>
 </mes>
 <mes>
  <nombre>Mayo</nombre>
  <valor>5</valor>
 </mes>
 <mes>
  <nombre>Junio</nombre>
  <valor>6</valor>
 </mes>
 <mes>
  <nombre>Julio</nombre>
  <valor>7</valor>
 </mes>
 <mes>
  <nombre>Agosto</nombre>
  <valor>8</valor>
 </mes>
 <mes>
  <nombre>Septiembre</nombre>
  <valor>9</valor>
 </mes>
 <mes>
  <nombre>Octubre</nombre>
  <valor>10</valor>
 </mes>
 <mes>
  <nombre>Noviembre</nombre>
  <valor>11</valor>
 </mes>
 <mes>
  <nombre>Diciembre</nombre>
  <valor>12</valor>
 </mes>
</meses>
Como sospecho que me vas a preguntar como traer los datos del archivo XML, adelanto la respuesta:
Código:
 
  Dim datosDrop as new DataView
  Dim ds as new DataSet
  Dim fs as FileStream
  Dim XMLStream as StreamReader
 
  fs = new FileStream(Server.MapPath("../xml/dias.xml"), FileMode.Open, FileAccess.Read)
  XMLStream = new StreamReader(fs)
  ds.ReadXML(XMLStream)
  XMLStream.Close()
  fs.close()
  
  datosDrop = ds.Tables(0).DefaultView
 
  ' Rellenamos el dropDownList
  ddl_regDia.DataSource = datosDrop
  ddl_regDia.DataTextField = "nombre"
  ddl_regDia.DataValueField = "valor"
  ddl_regDia.DataBind()
 
  datosDrop.Dispose()
  ds.Dispose()
Teniendo en cuenta que debes importar los namespaces:
Código:
   
Imports System.Data
Imports System.IO
Espero que esto haya resuelto tus dudas

Salu2