2

asp.net mvc 構文を使用した剣道 UI グリッドがあります。編集用のエディター テンプレートと一緒に日時の列があります。[編集] をクリックすると datetimepicker が表示されますが、現在の値 (InvoicedDate) が既に存在する場合に保持する方法がわかりません。何か案は?

編集:日付を選択しても、その値が更新アクションに引き戻されません。問題は関連していると思います。

請求書グリッド:

@(Html.Kendo().Grid<TMS.MVC.TIMS.Models.Invoice.InvoiceGridModel>()
<snip>
 columns.Bound(o => o.InvoicedDate).Width(100).Title("Invoice Date").Format("{0:M/d/yyyy}").EditorTemplateName("Invoice_InvoiceDate");
<snip>

エディター テンプレート (Invoice_InvoiceDate.cshtml):

@model TMS.MVC.TIMS.Models.Invoice.InvoiceGridModel

   @(Html.Kendo().DateTimePicker()
                    .Name("InvoiceDate")
                    .Value(Model == null ? DateTime.Now : Model.InvoicedDate)
                    .Format("M/d/yyyy h:mm tt")
   )
4

1 に答える 1

5

あなたの問題は、あなたのeditorTemplateが取り込もうとしていることにあると思います

@model TMS.MVC.TIMS.Models.Invoice.InvoiceGridModel

これは、editorTemplate を呼び出しているグリッドの列が DateTime 型である可能性が高いため、機能しません。タイプが一致しないため、エディタ テンプレートのモデルの値として常に null が表示されます。代わりにこれを試してください。

@model DateTime? 
@(Html.Kendo().DateTimePicker()
                .Name("InvoiceDate")
                .Value(Model == null ? DateTime.Now : @Model)
                .Format("M/d/yyyy h:mm tt")
)
于 2013-04-25T12:43:09.013 に答える