別のコンボボックスの選択に基づいて、1つのコンボボックスの値を入力しようとしています。私はMVC 5アプリケーションで剣道MVCコンボボックスを使用しています。私の場合は、SalesOrganisationコンボボックスの選択に基づいてSales Officeコンボボックスに値を入力しようとしています。そのためには、SalesOfficeコンボのコントローラメソッドを呼び出して国コード値を渡す必要があります。私は販売組織のドロップダウンコントロールの変更イベントにajaxメソッドを書いています。そのコントローラメソッドを呼び出す。私はメソッドの発射を見ることができますが、私はJavaScriptコードのデータを警告するとき、値は[オブジェクト] [オブジェクト]を示しています。しかし、ステータスは成功を示しています何が間違っているか分かりません。どのように私は、営業所のドロップダウンが取り込ま得るのですか別の剣道コンボボックスに基づいて剣道MVCコンボボックスを設定する
コンボボックス
<div class="form-group">
@Html.LabelFor(model => model.Company, htmlAttributes: new { @class = "control-label col-md-4" })
<div class="col-md-6">
<div class="editor-field">
@(Html.Kendo().ComboBoxFor(model => model.Company)
.Name("SalesOrganisation")
.HtmlAttributes(new { style = "width:300px" })
.DataTextField("Company")
.DataValueField("CountryCode")
.DataSource(dataSource => dataSource
.Read(read => read.Action("RequestHeader_SalesOrganisation", "Request").Type(HttpVerbs.Post))
)
.Events(e =>
{
e.Change("onChange");
})
)
</div>
@Html.ValidationMessageFor(model => model.Company, "", new { @class = "text-danger" })
</div>
</div>
<div class="clearfix"></div>
<div class="form-group">
@Html.LabelFor(model => model.SalesOffice, htmlAttributes: new { @class = "control-label col-md-4" })
<div class="col-md-6">
<div class="editor-field">
@(Html.Kendo().ComboBoxFor(model => model.SalesOffice)
.Name("SalesOffice")
.HtmlAttributes(new { style = "width:300px" })
.DataTextField("SalesOffice")
.DataValueField("SalesOfficeID")
.DataSource(dataSource => dataSource
.Read(read => read.Action("RequestHeader_SalesOffice", "Request").Type(HttpVerbs.Post))
)
)
</div>
@Html.ValidationMessageFor(model => model.SalesOffice, "", new { @class = "text-danger" })
</div>
</div>
SalesOfficeコントローラ方法
public ActionResult RequestHeader_SalesOffice(string id)
{
var response = requestRepository.GetSalesOffice(id).AsQueryable().ProjectTo<SalesOfficeViewModel>();
var jsonResult = Json(response, JsonRequestBehavior.AllowGet);
jsonResult.MaxJsonLength = int.MaxValue;
return jsonResult;
}
のjQuery
function onChange() {
alert($('#SalesOrganisation').val());
var ServiceUrl = "/CC.GRP.MCRequest/Request/RequestHeader_SalesOffice?id=" + $('#SalesOrganisation').val();
var content = '';
$.support.cors = true;
$.ajax({
type: 'Post',
url: ServiceUrl,
async: true,
cache: false,
crossDomain: true,
contentType: "application/json; charset=utf-8",
dataType: 'json',
error: function (xhr, err) {
},
success: function (data, status) {
$('#SalesOffice').val(data);
alert(data);
alert(status);
}
});
}
あなたはカスケーディング・コンボのHTTPを行う方法については、この例を見てきました。com/kendo-ui/combobox/cascadingcombobox –
共有した例はodataを使用しています。私のコードでは、コントローラのアクションメソッドを呼び出そうとしていますが、これは起動されません。私はそれがサーバー側でデータを取得することがわかります。私の質問は、クライアント側でそのjsonデータをフェッチしてバインドする方法です。 – Tom
コンボボックスのリストにある値を取得している場合、またはバインドするために新しい 'select'リストを取り戻す必要がある場合は、コンボボックスに? –