Если значение Datetime = null, тогда используйте сегодняшнюю дату - PullRequest
1 голос
/ 04 января 2011

Я пытаюсь понять, что если на указателе даты не выбрана дата, то вместо отправки значения NULL она отправит текущую дату.

, как вы можете видеть из приведенного ниже кода, который я уже пробовалКоличество способов, но безуспешно, нет модели представления, и все это на одной странице, которая, если я выберу дату в средстве выбора даты, не будет проблем.

просмотр кода даты страницы

<div class="rowElem">
    <label for="Date">Date</label>
    <div id="cal" style="float:left;"></div>
    <%= Html.HiddenFor(h => Model.Date)%>
</div>

Jquery datepicker code

$('#cal').datepicker({
            dateFormat: 'dd/mm/yy',
            [setDefaults: ({ defaultDate: '-0d' }),
            defaultDate: '-0d', tried both this and above line and neither worked]
            onSelect: function (dt, inst) {
                $('#Date').val(dt);
            }
        });

Контроллер создает почтовый индекс для даты

oq.Date = DateTime.Parse(fc["Date"]);

Ответы [ 6 ]

3 голосов
/ 04 января 2011

Вместо Parse вы можете использовать TryParse:

DateTime tmp = DateTime.MinValue;
oq.Date = DateTime.TryParse(fc["Date"], out tmp) ? tmp : DateTime.Today;
2 голосов
/ 04 января 2011
if (oq.Date == null)
            { oq.Date = DateTime.Now; }
            else
            { oq.Date = DateTime.Parse(fc["Date"]); }

Это сработало, я смог выяснить это благодаря ответам Томаса Янссона и Джексона Папа.

2 голосов
/ 04 января 2011

Попробуйте это в вашем C #:

DateTime date;
if (!DateTime.TryParse(fc["Date"], out date))
    date = DateTime.Today;

oq.Date = date;

Отредактировано: на основе комментария Myzifer.

1 голос
/ 04 января 2011

Разве вы не можете просто решить это на стороне сервера?Если пусто, используйте сегодняшнюю дату:

if(fs["Date"] == null)
   oq.Date = DateTime.Now;
else
   oq.Date = DateTime.Parse(fc["Date"]);

Кроме того, у вас должно быть больше описательных имен в ваших переменных.Может быть, кто-то еще будет читать ваш код в будущем.

0 голосов
/ 04 января 2011

Перед назначением даты, переданной из запроса на публикацию, проверьте данные даты, чтобы увидеть, не является ли это правильное значение, и установите их на сегодняшнюю дату, иначе используйте данные записи, если они правильные.

0 голосов
/ 04 января 2011

Откуда берется fc. Если это вопрос базы данных, вы, вероятно, могли бы использовать isnull (fieldname, getdate ()) или аналогичную функцию, чтобы вернуть его сегодня, если поле равно нулю.

Mysql использует ifnull вместо isnull.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...