2016-12-27 2 views
0

У меня есть следующий код сетки, и я пытаюсь выполнить базовую проверку на мои даты. Как видите, у меня есть дата начала и дата окончания, и мне нужно проверить их так, чтобы StartDate < = EndDate. Есть ли простой способ добавить эту проверку в код ниже?Проверка даты в MVC Gridview

Html.DevExpress().GridView(settings => 
{ 
    settings.Name = "gvActiveScheduledAnnouncements"; 
    settings.Width = Unit.Percentage(100); 
    settings.KeyFieldName = "AnnouncementId"; 

    settings.CallbackRouteValues = new { Controller = "Home", Action = "ActiveScheduledAnnouncementsPartial" }; 

    settings.SettingsEditing.Mode = GridViewEditingMode.EditForm; 

    settings.SettingsEditing.AddNewRowRouteValues = new { Controller = "Home", Action = "AddNewAnnouncement" }; 
    settings.SettingsEditing.UpdateRowRouteValues = new { Controller = "Home", Action = "UpdateActiveScheduledAnnouncement" }; 
    settings.SettingsEditing.DeleteRowRouteValues = new { Controller = "Home", Action = "DeleteActiveScheduledAnnouncement" }; 

    settings.Columns.Add(c => 
    { 
     c.Caption = "Announcement Text"; 
     c.FieldName = "Text"; 

     c.ColumnType = MVCxGridViewColumnType.Memo; 
     c.EditFormSettings.ColumnSpan = 2; 

     c.ColumnType = MVCxGridViewColumnType.Memo; 
     var memo = c.PropertiesEdit as MemoProperties; 
     memo.Rows = 3; 
    }); 

    settings.Columns.Add(c => 
    { 
     c.Caption = "Start Date"; 
     c.FieldName = "StartDate"; 


     c.ColumnType = MVCxGridViewColumnType.DateEdit; 
    }); 

    settings.Columns.Add(c => 
    { 
     c.Caption = "End Date"; 
     c.FieldName = "EndDate"; 

     c.ColumnType = MVCxGridViewColumnType.DateEdit; 
    }); 

    settings.Columns.Add(c => 
    { 
     c.Caption = "Display Status"; 
     c.FieldName = "DisplayStatus"; 

     c.EditFormSettings.Visible = DefaultBoolean.False; 
    }); 
}) 
.Bind(Model) 
.Render(); 
+0

Какую проверку вы хотите: на стороне клиента или на стороне сервера? Если используется серверная сторона, поместите условие if в код контроллера, в противном случае используйте JS/jQuery с методами MVCxClientGridView, которые считывают поле даты в форме редактирования, а затем проверяют их значения с использованием if-condition. –

+0

Честно говоря, я заинтересован в обоих, но не смог понять, как это сделать, если вы можете представить пример в любом случае, я был бы признателен. –

ответ

0

Подтверждение может быть выполнено с помощью контроллера с сырыми данными или с точки зрения с помощью бритвы или js.

Я рекомендую вам сделать это в драйвере, поэтому просто визуализируйте его в представлении.

+0

К сожалению, мы не используем бритву, это просто часть с частичным просмотром ascx. Не могли бы вы привести мне пример того, как я это сделаю «в драйвере»? благодаря! –

+0

@DeCo Ожидание до удара Контроллера - ужасная идея. Да, вы могли бы это сделать, однако, это создает ненужную поездку на сервер. Лучшей практикой является проверка проверки на стороне клиента. Это главная часть MVC в первую очередь. – IyaTaisho

0

Один из способов сделать это - включить настраиваемую настройку проверки. Следующая ссылка - один из способов сделать это: Link

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

Смежные вопросы