1

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 を検索しましたが、同じ問題を抱えている人を見つけることができないようです。間違った検索キーワードを使用している可能性があります.. いずれにせよ: 同じ問題を経験した人や解決策を知っている人はいますか?

//編集:質問をより明確にするために少し追加します(願っています):

  1. KendoGrid 作品の作成
  2. カスタムテンプレートフォームを編集ポップアップにバインドするとうまくいきます
  3. 最初に、すべてのフィールドに正しいタイプが表示されます (ブール値/数値/日付/時刻/テキスト)
  4. IDが必要なため、編集ポップアップ内で日付形式は正しいです
  5. データを保存するときにエラーが発生します。ポップアップによってデータソースに返される値には、dd-mm-YYYY ではなく YYYY-mm-ddTHH:ii:ss.000Z 形式が含まれます。
4

1 に答える 1