template pageable mvc kendo ejemplos controles model-view-controller model telerik-grid telerik-mvc datetimepicker

model view controller - pageable - ¿Cómo puedo cambiar el "obtener" y "establecer" en una propiedad del modelo?



telerik grid mvc (1)

Actualmente tengo una propiedad DateTime para un modelo. Estoy usando el framwork telerik MVC pero estoy usando una propiedad DateTime y la columna de editor para esta propiedad se genera automáticamente, por lo que no hay código que lo controle en mi View o Controller. En el sitio web de Telerik hay instrucciones sobre cómo configurar la hora de fecha predeterminada para un selector de fecha y hora, pero este selector no se inicia en ninguna parte porque está en una columna. El problema es que quiero configurar DateTime para que sea la fecha y hora actual si no está especificado. Actualmente, el código para el modelo se ve así:

public DateTime CreatedDate { get; set;}

Quiero que haga algo más como esto:

public DateTime CreatedDate { get { if (QuestionID != 0) { return this.CreatedDate; } else { return DateTime.Now; } } set { CreatedDate = value; } }

de esta manera devolverá el DateTime que está almacenado para esta Pregunta si la ID existe. Si está creando una nueva pregunta, obtiene el DateTime actual.

El problema está aquí con el conjunto. Cuando intento cargar una pantalla, establezco get''s Overflow. Realmente no soy familiar con este tipo de código, así que no tengo idea de cómo trabajar con él.

Antes no estábamos trabajando con el modelo, y en su lugar usamos JQuery para obtener los datos del CreatedDate y configurarlo en la fecha actual. El problema con eso es cuando vas a la parte del "selector" del tiempo de la fecha, va a la hora de fecha predeterminada en lugar de la fecha actual. esta es la razón por la que quiero configurarlo a través del Modelo, Vista o Controlador, y no con Jquery.

¡Avíseme si puede ayudarme a entender Objetos y conjuntos en el modelo!


Necesita tener una propiedad privada que está utilizando detrás de escena.

private DateTime _createdDate; public DateTime CreatedDate { get { if (QuestionID != 0) { return _createdDate; } else { return DateTime.Now; } } set { _createdDate = value; } }

Está recibiendo un desbordamiento porque está haciendo algo como esto actualmente:

CreatedDate = 1/1/2012; ...which then calls CreatedDate = 1/1/2012; ...which then calls CreatedDate = 1/1/2012 ..You get the point (it is continuously setting itself until the s)

Las propiedades implementadas automáticamente ( {get;set;} ) realmente usan una variable privada detrás de las escenas. Si miraras el IL, verías que en realidad rompe ese simple {get;set;} en un getter / setter basado en una variable privada generada. Son solo un tipo de "magia del compilador" para reducir el código repetitivo de tener que crear una variable privada cuando no hay una lógica real en el getter / setter. Si tiene lógica, entonces necesita implementar esta variable privada usted mismo.