Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/04/2013, 07:26
chcma
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 11 meses
Puntos: 7
knockout: Cargar DropDownList con un valor seleccionado por Defecto.

Hola Foreros !!!

La verdad es que el título no es del todo todo descriptivo. Realmente si soy capaz de cargar un DropDownList, pero no soy capaz de que aparezca un valor por defecto seleccionado (Al menos, como yo quiero).

He visto ejemplos en la página de Knockout, pero tal y como ellos lo ponen a mi no me sirve, por que el ejemplo es para cosas fáciles. Les explico...

Tengo un ViewModel de la siguiente manera:

Código:
        function ViewModel() 
        {

            var self = this;

            self.CertificationTypeList = ko.observableArray();
            self.CertificationList = ko.observableArray();

            .............
            .............
            .............
        }
En CertificationTypeList cargo una serie de objetos que indican los tipos de certificaciones que hay para mi aplicacion.

En CertificationList cargo una serie de objetos de tipo certificaciones que hay en mi aplicación. Estos objetos tienen una propiedad que es CertificationType que es idéntica a un objeto de los que hay en CertificationTypeList.

Bien, con todo esto debidamente cargado, muestro una tabla con las certificaciones:

(El problema está en el último TD, lo demás está bien)
Código:
            <tbody data-bind="foreach: CertificationList">
                <tr>
                    <td>
                        <label id="lblCertificationCode" data-bind="text: Code"></label>
                        <input style="visibility:collapse; width:10px" class="TextEdit"
                               type="text" 
                               id="txtEditCertificationCode" 
                               data-bind="text: Code" />
                    </td>
                    <td>
                        <label id="lblCertificationName" data-bind="text: CertificationName"></label>
                        <input style="visibility:collapse;" class="TextEdit"
                                type="text"
                                id="txtEditCertificationName"
                                data-bind="text: CertificationName" />
                    </td>
                    <td>
                        <select data-bind="options: CertificationTypeList,
                                           optionsText: function(item) { 
                                                return item.TypeName
                                           },
                                           optionsValue: function(item) { 
                                                return item.Code
                                           },
                                           value: CertificationType().Code" id="cmbCertificationType"></select>
                    </td>
                </tr>
            </tbody>
Por lo que veo, el problema está, que al enlazar la "tabla" con la propiedad CertificationList del ViewModel, después no es capaz de hacer un Bind, con la otra propiedad del ViewModel CertificationTypeList que es donde realmente tengo los tipos de de Certificación.

No sé si me he explicado... pero bueno, espero que sí y que puedan ayudarme jejeje.

Gracias de antemano por leer el post. : )
__________________
Charlie.