Foros del Web » Programando para Internet » ASPX (.net) »

Dropdownlist MVC VB.Net

Estas en el tema de Dropdownlist MVC VB.Net en el foro de ASPX (.net) en Foros del Web. Buen día Usualmente mi experiencia en ASP.Net es con C# o VB pero en una aplicación ASPX. Y ahora me tocó uno de esos clientes ...
  #1 (permalink)  
Antiguo 13/10/2014, 10:56
 
Fecha de Ingreso: julio-2010
Mensajes: 77
Antigüedad: 14 años, 4 meses
Puntos: 0
Dropdownlist MVC VB.Net

Buen día

Usualmente mi experiencia en ASP.Net es con C# o VB pero en una aplicación ASPX. Y ahora me tocó uno de esos clientes que está a ferrado a utilizar MVC con VB.Net y HTML.

El problema es que todos los tutoriales disponibles están con Razor y C#, y me he topado con cosas que no son iguales a las que me sugieren (simplemente el uso de ViewBag).

Por lo que pido su ayuda para llenar un DropDownList con éstos recursos (MVC, VB.Net y HTML). Ya que me siento cómo estudiante al estar batallando con algo tan sencillo, espero de ahí poder aclimantarme a lo que sigue.

Saludos!
  #2 (permalink)  
Antiguo 14/10/2014, 07:31
 
Fecha de Ingreso: julio-2010
Mensajes: 77
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Dropdownlist MVC VB.Net

Para todo aquel que llegue aquí en busca de información, les dejo la solución que implementé (que la verdad no creo que sea la mejor, pues tengo mis dudas con el performance de la aplicación):

Código en la vista:

Código:
<select id="cboEjemplo" name="cboEjemplo">
          <%= ViewData("cboEjemplo") %>
</select>
Lo que hago aquí es crear un combo HTML con el id y name cboEjemplo (Es necesario poner los dos ya que MVC cacha el valor de los NAME en el submit, y el id lo utilizo para mi código de JQUERY.

Posteriormente en el Modelo tengo la siguiente función:

Código:
Public Function LlenarCombo(sp as string) As String
 Try

     Dim tblDatos as DataTable = EjecutarSp(sp)
     Dim combo as string = ""

     For each ren as DataRow in tblDatos.Rows
          combo &= "<option value='" & ren.item(0) & "'>" & ren.item(1) & "</option>"
     Next

     return combo

 Catch ex as Exception
     Throw ex
 End Try
End Function

Ésto lo hago práctimente sabiendo que TODOS los sp que haga para llenar combos traeran el ValueMember como primer campo y el DisplayMember como segundo. De tal modo que la función SIEMPRE regresará los elementos del combo.

Y en el controlador tengo lo siguiente:

Código:
Function Productos() As ActionResult
 Try

     ViewData("cboEjemplo") = LlenarCombo("spLlenarComboEjemplo")

     return View

 Catch ex as Exception
     ViewData("Error") = ex.Message
 End Try
End Function


De éste modo todo lo que reciba de la función LlenarCombo se escribirá en dónde esté el ViewData("cboEjemplo").



Si alguien tiene una respuesta mejor favor de hacernosla saber!

Saludos!
  #3 (permalink)  
Antiguo 02/11/2014, 00:20
 
Fecha de Ingreso: octubre-2012
Ubicación: España
Mensajes: 30
Antigüedad: 12 años, 1 mes
Puntos: 2
Respuesta: Dropdownlist MVC VB.Net

Hola, yo con c# MVC cargo los combos de la siguiente forma, aunque tampoco sé si será la mejor forma:
En un ActionResult que devuelve una vista parcial le pongo esto:
var list = new SelectList(_insService.GetOpenInsWorks(), "Id", "Description");
//Los paso a la vista parcial
ViewData["work"] = list;
  #4 (permalink)  
Antiguo 02/11/2014, 00:24
 
Fecha de Ingreso: octubre-2012
Ubicación: España
Mensajes: 30
Antigüedad: 12 años, 1 mes
Puntos: 2
Respuesta: Dropdownlist MVC VB.Net

Perdón, lo envié sin acabar. Sigo:
En el SelectList pones el método que recupera los datos a mostrar y las columnas que van a ser el value y el texto.
Creas la vista parcial y le pones algo así:
@Html.DropDownList("work", ViewData["work"] as SelectList, "Seleccione Proyecto", new { @class = "ddlist" })
Luego ya desde la vista que lo necesites cargas la vista parcia del dropdownlist con un HTML.Action

Etiquetas: dropdownlist, html, mvc
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:24.