私のAsp.net MVCプロジェクトでは、モデル内の顧客リストに添付されている剣道コンボボックスがあります。私は新しい顧客を入れる能力を望んでいます(まだリストに入っていない場合)。私も持参し、顧客のアドレスを既存埋めるためにAJAX呼び出しを行うために)(にonSelectを提供してきましたリストにない値を受け入れる方法は?
@(Html.Kendo().ComboBox()
.Name("CustomerName")
.Filter("startswith")
.Placeholder("Select a customer...")
.BindTo(@Model.CustomerSelectList)
.Events(e => { e.Select("onSelect"); })
.DataTextField("Text")
.DataValueField("Value")
.Suggest(true)
.HtmlAttributes(new { style = "width:250px;" }))
:私はのように設定コンボボックスをしました。
function onSelect(e) {
// get the dataItem corresponding to the selectedIndex to get the text and value
var dataItem = this.dataItem(e.item.index());
var value = dataItem.Value;
var text = dataItem.Text;
//Retreive list for new selection
var url = '@Url.Content("~/Request/GetCustomerAddress")' + '?CustID=' + value;
$.ajax({ url: url, success: CustomerDataRetrieved, cache: false, error: AjaxError, type: 'GET', dataType: 'json' });
}
function CustomerDataRetrieved(data) {
$("#Address1").val(data.Address1);
$("#Address2").val(data.Address2);
$("#Address3").val(data.Address3);
$("#City").val(data.City);
$("#State").val(data.State);
$("#PostalCode").val(data.PostalCode);
$("#Country").val(data.Country);
}
既存の顧客リストからアイテムを選択すると、それはうまく動作し、顧客の住所を記入します。しかし、コンボボックスに新しい顧客名を入力すると、自動的にコンボボックスがクリアされます。剣道のコンボボックスに新しい値を保持させるにはどうすればよいですか?
更新1: 下の図に示すように、値をコンボボックスに入力すると、値が入力された次のフィールド(Address1)に移動した後にEnterキーを押しますin、コンボボックス値のままです。しかし、新しい値を入力してEnterキーを押すと、次のフィールド(Address1)に移動しますが、コンボボックスの値は消えます。
質問は不明です。 onSelectメソッドがcomboBoxをクリアしていますか? –
はい。 onSelect()から呼び出しが返ると、コンボボックスは空になります。スクリーンショットと説明で質問を更新しました。 – SJaka