Ver Mensaje Individual
  #2 (permalink)  
Antiguo 14/10/2014, 07:31
candrade
 
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!