0

KENDO UI Autocomplete ウィジェットを使用するビュー cshtml ファイルがあります。月曜日、火曜日などの曜日を取得するために使用します...

私のモデルでは、このコントロールにバインドされた文字列の配列があります。オートコンプリート テキスト ボックスに複数の値を入力すると、各エントリがオートコンプリート テキスト ボックスからの 1 つの値を持つ異なる配列エントリとしてモデルに取り込まれます。より明確にするために、テキスト ボックスに Monday, Tuesday と入力すると、最初の要素の値が月曜日で、2 番目の要素の値が火曜日である 2 つの要素の配列が期待されます。

どうすればこれを達成できますか? 今、月曜日、火曜日のように要素が 1 つだけの配列を取得しています。 以下は、モデルとビューのコードです。

var daysofweek = [
                            "Monday",
                            "Tuesday",
                            "Wednesday",
                            "Thursday",
                            "Friday",
                            "Saturday",
                            "Sunday",
            ];
$("#daysofweek").kendoAutoComplete({
                dataSource: daysofweek,

                placeholder: "Select days of week...",
                separator: ", "
            });
<label for="daysofweek">Select Days of Week</label>
        <input type="text" id="daysofweek" name="DaysofWeek" /><br />

型式コード

public class Holiday
    {
        public string Name { get; set; }
        public string Description { get; set; }
        public DateTime Date { get; set; }
        public short Type { get; set; }
        public bool AllYears { get; set; }
        public string[] Days { get; set; }
        public string[] DaysofWeek { get; set; }
        public string[] Months { get; set; }
    }
4

1 に答える 1

2

これを達成する1つの方法は、

 public string DaysofWeek { get; set; }

,クライアントからコンマ区切りの値を受け取り、サーバー上で値をlikeに基づいて分割する

DaysOfWeekArray = DaysofWeek.split(',');

アップデート:

別の少し醜い方法は、送信イベントをフックし、投稿する前にフォーム要素にいくつかの変更を加えることです

$('form').submit(function () {
    var val = $('input[name="DaysofWeek"]', this).val(); // getting comma seperated values
    var valArray = val.split(','); // creating array
    for (var i = 0; i < valArray.length; i++) {
        // creating dynamic elements with names[i] and value[i]
        $('input').attr('name', 'DaysofWeek[' + i + ']').val(valArray[i]).appendTo(this);
    }
    //removing original element
    $('input[name="DaysofWeek"]', this).remove();
});
于 2013-07-25T07:12:16.293 に答える