사용자가 다른 검도 자동 완성에서 고객을 선택한 후 일부 제품을로드 할 검도 자동 완성의 전송에 사용되는 컨트롤러 ID를 설정해야하지만이를 수행 할 방법을 찾을 수 없습니다.
나는 ASP를 사용하고 있습니다. kendo ui 및 web api가있는 net mvc 5이며 이것은 현재 코드입니다.
@(Html.Kendo().AutoComplete()
.Name("Product")
.DataTextField("Description")
.Filter("startswith")
.MinLength(3)
.Placeholder("Digite o nome de um produto")
.Events(events => events.Select("ProductSelect"))
.ValuePrimitive(true)
.HtmlAttributes(new { @class = "form-control", @style = "display:block; width: 100%; max-width: 100%; ", @data_bind = "value: productName", @required = true })
.DataSource(source =>
source.Custom()
.Transport(transport => transport
.Read(read =>
{
read.Url(Url.HttpRouteUrl("DefaultApi", new { controller = "Product", id = "this should be dinamic changed" }))
.Data("onProductAdditionalData");
})
)
.Schema(schema =>
schema
.Data("Data")
.Total("Total")
.Errors("errors")
)
)
)
몇 가지 테스트를 마친 후 작동하도록했습니다. 제 경우에는 다음 코드를 첫 번째 자동 완성에서 onSelectChange에 작성했습니다.
function CustomerSelect(e) {
var DataItem = this.dataItem(e.item.index());
if (DataItem.HasRestriction) {
$("#CustomerID").val("");
$("#Customer").data("kendoAutoComplete").value("");
notification.show({
title: "Cliente com restrição",
message: "Por favor contate o departamento financeiro para mais informações."
}, "error");
e.preventDefault();
}
else {
$("#CustomerID").val(DataItem.ID);
$("#Customer").attr("disabled", true);
$("#PaymentTermsID").data("kendoComboBox").input.focus();
$("#Product").data("kendoAutoComplete").dataSource.transport.options.read.url = "@Url.HttpRouteUrl("DefaultApi", new { controller = "Product" })/" + DataItem.ID; //This is the responsable to change the url.
$("#Product").data("kendoAutoComplete").dataSource.read(); //this forces the initial read after changed.
}
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다