Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   Insertar un datarow (http://www.forosdelweb.com/f29/insertar-datarow-242716/)

Anerol 28/10/2004 17:23

Insertar un datarow
 
Es lo que necesito o no ?? :stress:

En realidad mi problema es con un dorpdownlist que enlazo a una bd para mostrar contenido, y quiero aplicarle un requeiredfieldvalidator, pero como siempre tiene un contenido no funciona el validator.

Lucxx me decia que le insertara un datarow, pero no se como en verdad, he visto varias cosas pero aun no encuentro la solucion. :no:

Quizas el requiredfieldvalidator tenga alguna opcion que me ayude, no se. plop

A alguien se le ocurre ??

lucxx 29/10/2004 09:37

A ver, ya voy con la solucion :borracho:

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, :-D 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 :arriba:

Salu2

Anerol 29/10/2004 10:44

Uyy
esta buena la explicacion
ojala que me resulte
gracias


La zona horaria es GMT -6. Ahora son las 04:12.

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