KendoUI グリッドの使用に行き詰まりました。これまでのところ、セットアップは期待どおりに機能します。タイトル、説明、値をすべて含む 5 つのエントリを持つカスタム データソースを作成しました。値は異なる場合があり、ブール値、数値、テキスト、日付、または時刻のいずれかです。
編集ポップアップにカスタム KendoTemplate を使用すると、値に応じて正しいフィールド タイプを表示するポップアップを取得できます。
<!-- Datefield -->
#if($.isNumeric(value) == false && value.match(/^\d{2}([.\/-])\d{2}\1\d{4}$/)) {#
<li>
<label>Waarde</label>
<input id="datepicker" data-bind="value:value" style="width: 40%;" />
</li>
#} else if($.isNumeric(value) == false && value.match('([01]?[0-9]|2[0-3]):[0-5][0-9]')) {#
<li>
<label>Waarde</label>
<input id="timepicker" data-bind="value:value" style="width: 40%;" />
</li>
<!-- Yes/No Radio button if value is J(=Yes) or N(=No) -->
#} else if (value == "J" || value == "N") {#
<li>
<label>Waarde</label>
<input type="radio" name="value" data-bind="checked:value" value="J" /> Ja
<input type="radio" name="value" data-bind="checked:value" value="N" /> Nee
</li>
<!-- If the value is Numeric then show a numeric textbox -->
#} else if($.isNumeric(value)) {#
<li>
<label>Waarde</label>
<input type="text" data-bind="value:value" data-role="numerictextbox" style="width:50%;" />
</li>
<!-- Else: textfield for the value -->
#}else {#
<li>
<label>Waarde</label>
<input type="text" data-bind="value:value" class="k-textbox" />
</li>
#}#
これまでのところ、これは想定どおりに機能します。次のように、KendoGrid に属する「edit」メソッドでポップアップが開かれるとすぐに、datepicker と timepicker が作成されます。
if($('#datepicker').length > 0) {
console.log('datefield');
$("#datepicker").kendoDatePicker({
format: "dd-MM-yyyy",
parseFormats: ["dd-MM-yyyy"]
});
}
if($('#timepicker').length > 0) {
console.log('timefield');
$("#timepicker").kendoTimePicker({
timeFormat: "HH:mm"
});
}
ただし (!) 1 つの問題が発生しています。私が試したことはありませんが、編集フォームによって投稿されている戻り値には、のような日付は含まれていませんが、の19-11-2013
ような日付が含まれています19-11-2013T00:00:00.000Z
。少なくともスクリプトの基本は機能していますが、この形式のため、このフィールドは編集後に「日付」ではなく「時間」として認識されます。本当に必要なのは、dd-mm-yyyy 通知と時間の HH:ii だけです。
KendoForums、Google、および StackOverflow を検索しましたが、同じ問題を抱えている人を見つけることができないようです。間違った検索キーワードを使用している可能性があります.. いずれにせよ: 同じ問題を経験した人や解決策を知っている人はいますか?
//編集:質問をより明確にするために少し追加します(願っています):
- KendoGrid 作品の作成
- カスタムテンプレートフォームを編集ポップアップにバインドするとうまくいきます
- 最初に、すべてのフィールドに正しいタイプが表示されます (ブール値/数値/日付/時刻/テキスト)
- IDが必要なため、編集ポップアップ内で日付形式は正しいです
- データを保存するときにエラーが発生します。ポップアップによってデータソースに返される値には、dd-mm-YYYY ではなく YYYY-mm-ddTHH:ii:ss.000Z 形式が含まれます。