none
problema con datepicker en una lista RRS feed

  • Pregunta

  • hola estoy usando mvc3 y un datepicker el cual si uso uno funciona muy bien, pero cuando tengo una lista de datos el datapicker aparece solo para el primero

    este es el código para el DateTime en EditorTemplates

       

    @model Nullable<DateTime>
     @{
        DateTime dt = DateTime.Now;
        if (Model != null)
        {
           dt  = (System.DateTime) Model;

        }
       @Html.TextBox("", dt.ToShortDateString(), new { maxlength = 10, @class = "editor-fecha" })                                  
                   <script type="text/javascript">
                       if (typeof (jQuery) == 'function') {
                           $(function () {
                               if ($.datepicker) {
                                   $('#@this.ViewData.TemplateInfo.GetFullHtmlFieldId("")').datepicker();
                               }
                           });
                       }
                   </script>

    y este es el código de donde lo presento en el View

    @foreach (var iterador in Model.personalEnSuo.Where(v => v.idPersonal == Model.id).OrderByDescending(v => v.fAsig))
                { 
                    <tr>
                        <td>
                            @iterador.suo.nombre
                        </td>
                        <td>
                            @Html.EditorFor(model => Model.personalEnSuo.Single(v => v.idAuxiliar == iterador.idAuxiliar).fAsig)
                        </td>
                        <td>
                            @iterador.cond
                        </td>
                        <td>
                            @Html.ActionLink("Eliminar", "../personalEnSuo/Delete", new { id = iterador.idAuxiliar })
                        </td>
                    </tr>
                }
                 </table>

    los EditFor me muestran bien las fechas el detalle es que el datepicker aparece solo para el primer renglon del foreach

    lunes, 9 de julio de 2012 18:05

Todas las respuestas

  • sigue sin funcionar pero el datepicker ya me aparece en los otros EditFor de la lista, solo que de la lista cuando modificas la fecha se modifica el primer EditFor independientemente de el renglon donde edites de la lista solo cambía a el primero, les agrego los cambios

     <script type="text/javascript">
                       $(document).ready(function () {
                           $(".editor-fecha").datepicker($.datepicker.regional["es"]);

                       });

    agregue en Site.css la clase de editor-fecha, pero creo que el detalle sería el id de cada EditorFor dentro de la lista para que el datepicker " sepa " a cual EditorFor corresponde la fecha del Widget,.. o uds que opinan. pero no se como implementar eso de los Ids para la lista y asignarlo a cada datepicker.

    martes, 10 de julio de 2012 17:53
  • Yo tengo esto en un editor parecido al tuyo, aunque la verdad es que es un código heredado y nunca le había prestado mucha atención

    @{var fieldName = ViewData.TemplateInfo.HtmlFieldPrefix;}
    
    
    <script type="text/javascript">
      $(document).ready(function () {
        $('#@fieldName').datepicker({ dateFormat: 'dd/mm/yy' });
      });
    </script>

    Espero que te sirva, aunque ahora me dejas con la duda de si usar GetFullHtmlFieldId o HtmlFieldPrefix. Me lo apuntaré en la lista de cosas que tengo que revisar del código.


    Atentamente, Sergio.

    Blog
    Twitter

    miércoles, 11 de julio de 2012 8:55
  • gracias lo probé pero no me funciona, parece que una posible solucion sería cambiar de EditFor a divs ó poner dovs dentro de <li> o algo asi, lo pruebo mañana y comento; muchas gracias por tu respuesta

    jueves, 12 de julio de 2012 3:28