2016-12-27 15 views
0

私は次のgridviewコードを持っています。私は自分の日付でいくつかの基本的な検証をしようとしています。ご覧のとおり、開始日と終了日があり、StartDate < = EndDateになるように検証する必要があります。この検証を下のコードに追加する簡単な方法はありますか?MVCグリッドビューの日付の検証

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-conditionをコントローラー・コードに置き、そうでなければ 'MVCxClientGridView'メソッドでJS/jQueryを使用し、編集フォームの日付フィールドを読み取り、if-conditionを使用して値をチェックします。 –

+0

正直言って私は両方に興味がありますが、いずれかの方法を理解することができなかったので、どちらかの方法で例を挙げていただければ幸いです。 –

答えて

0

検証は、rawデータまたはrazorまたはjsビューのデータを持つコントローラから実行できます。

私はあなたがドライバでそれを行うことをお勧めしますので、ビューでレンダリングしてください。

+0

残念ながら、私たちはかみそりを使用していません、それはちょうどascxの部分的なページです。あなたは私が「ドライバー」でそれを達成する方法の例を教えてください。ありがとう! –

+0

@DeCoコントローラを打つまで待つのはひどい考えです。はい、できますが、サーバーへの不要なトリップが発生します。クライアント側で妥当性チェックを行う方が良い方法です。これは、最初のMVCの主要な部分です。 – IyaTaisho

0

カスタム検証設定を有効にすることもできます。次のリンクは、これを行う方法の1つです:Link

jQueryまたはJavaScriptを使用して編集プロセス中にそのフィールドを手動でチェックすることもできます。上記のいずれかを行うにあたり、編集プロセスがいつ始まるかを見て、jQuery経由で監視するコントロールを見つけてください。セーブ時(または2番目の日付(開始または終了)が追加されたとき)に値をチェックし、無効である場合にユーザーに警告します。