2016-07-08 28 views
0

日時ピッカーコントロールのグリッド内の最小値と最大値を設定しようとしています。フォーム上の別のdatepickerの値に基づいて、値を動的に設定する必要があります。剣道グリッドの日付範囲を動的に制限するMVC日付欄

私はonEditイベントを処理しようとしましたが、行内のdatetime pickerコントロールが見直されずにこれらの値を設定するように編集されました。

剣道グリッドMVCのインライン編集で日付範囲を制限する適切な方法は何ですか?

これは、グリッドの作成方法です:

<div> 
    @(Html.Kendo().Grid<CpcPrevisionUnidadesDto>() 
      .Name("gridListado") 
      .HtmlAttributes(new { @class = "kendo-grid-" }) 
      .AutoBind(false) 
      .Columns(columns => 
      { 
       columns.Bound(c => c.IdCpcPrevisionParadasUnidadesDto).Hidden(); 
       columns.Bound(c => c.IdCpcUnidadesProceso).Hidden(); 
       columns.Bound(c => c.CodigoUnidadProceso).Title(Html.Resource("CPC_CU_DP003_Unidad").ToString()); 
       columns.Bound(c => c.DescripcionUnidadProceso).Title(Html.Resource("CPC_CU_DP003_Nombre").ToString()); 
       columns.Bound(c => c.FechaParada).Title(Html.Resource("CPC_CU_DP003_FechaParada").ToString()).Format("{0:dd/MM/yyyy}").EditorTemplateName("Date"); // Need to set MAX and MIN values 
       columns.Bound(c => c.FechaArranque).Title(Html.Resource("CPC_CU_DP003_FechaArranque").ToString()).Format("{0:dd/MM/yyyy}").EditorTemplateName("Date"); // Need to set MAX and MIN values 
       columns.Bound(c => c.Observaciones).Title(Html.Resource("CPC_CU_DP003_Observaciones").ToString()); 
       columns.Template(c => { }).Title(" ").Width(40).ClientTemplate("#=menuRuedaTemplate([uid])#").HtmlAttributes(new { style = "overflow: visible;" }); 
      }) 
      .DataSource(datasource => datasource 
       .Ajax() 
       .PageSize(20) 
       .Read(read => read.Action("BuscarPrevisionParadasPrevistasUnidades", "PrevisionParadasPrevistasUnidades").Data("setParametrosListado")) 
       .Create(create => create.Action("CreatePrevisionParadasPrevistasUnidades", "PrevisionParadasPrevistasUnidades").Type(HttpVerbs.Post).Data("sendAntiForgery")) 
       .Update(update => update.Action("UpdatePrevisionParadasPrevistasUnidades", "PrevisionParadasPrevistasUnidades").Type(HttpVerbs.Post).Data("sendAntiForgery")) 
       .Sort(sort => sort.Add("CodigoUnidadProceso").Ascending()) 
       .Events(e => e.Error("screenErrorHandling")) 
       .Model(model => model.Id(p => p.IdCpcPrevisionParadasUnidadesDto)) 
     ) 
      .Sortable() 
      .Navigatable() 
      .Pageable(pager => pager.Messages(messages => messages.Display(Html.Resource("Mensaje_Grid_Datos").ToString())) 
      .Messages(m => m.Empty(Html.Resource("Mensaje_Grid_SinDatos").ToString()))) 
      .Resizable(r => r.Columns(true)) 
      .Events(e => e.DataBound("dataBoundGrid").Edit("onEdit")) 
      .Editable(editable => editable.Mode(GridEditMode.InCell)) 
      .ToolBar(toolbar => toolbar.Save().SaveText(Html.Resource("MAIN_Guardar").ToString()).CancelText(Html.Resource("MAIN_Cancelar").ToString()))) 
</div> 

これは、日付エディタのテンプレートです:

@model DateTime? 

@(Html.Kendo().DatePickerFor(m => m)) 
+0

html plsを表示します。どのようにDatePickerを作成していますか? –

+0

@MarioGarciaお時間をありがとう、私は私の質問を更新しました。 – Oscar

+0

DatePickerテンプレート "Date"も表示できますか? –

答えて

1

あなたの日付ピッカーのためのHTMLを編集して、最小値と最大値を指定する必要があります。この例では、今年の過去の値のみを選択することができます。あなたの「のonEdit」イベントでそれを試してみてください.max()

ため

$("#Date").data("kendoDatePicker").min(new Date(2015, 0, 1)) 

同じ:あなたが動的に値を設定する必要がある場合は

@(Html.Kendo().DatePickerFor(m => m) 
.Min("01/01/2016") 
.Max(DateTime.Now) 
) 

することは、あなたはちょうどあなたが必要とする値を取得し、これを試すことができます、datepickerが作成されたときに、もっと助けが必要な場合はお知らせください

+0

ご協力ありがとうございます。ただし、ページの別のコントロールに基づいて最大値と最小値をdinamicallyに設定する必要があるため、クライアント側でjsで処理する必要があります。 – Oscar

+0

チャットルームを開始してさらに議論することはできますか?私は1つを作成するか分からない –

+0

@私はどちらも:-( – Oscar

関連する問題