Hello,
I have a function which constructs Observable ViewModel. In that there are 4-5 dataSource.
function
GetAirRequestMVVMTemplate() {
debugger;
//kendo.ui.progress($("body"), true);
var
airRequestViewModel = kendo.observable({
FlightDestinationSource:
function
(e) {
return
new
kendo.data.DataSource({
transport: {
read: {
url: rootUrl(
"GetData/GetCountry"
),
dataType:
"json"
}
},
serverFiltering:
true
});
},
FlightOriginSource:
function
(e) {
return
new
kendo.data.DataSource({
transport: {
read: {
url: rootUrl(
"GetData/GetCountry"
),
dataType:
"json"
}
},
serverFiltering:
true
});
},
ViaSource:
function
(e) {
debugger;
var
viadata = e.ArriveDepartDetails.via;
return
new
kendo.data.DataSource({
transport: {
read: {
url: rootUrl(
"GetData/GetCountry"
),
dataType:
"json"
,
data:
function
(e) {
return
{
adddata: JSON.stringify(viadata)
//viadata != null ? JSON.stringify(viadata) : JSON.stringify([])
};
}
}
},
serverFiltering:
true
});
},
AirlineIdsSource:
function
(e) {
debugger;
var
airdata = e.AirlineIds;
return
new
kendo.data.DataSource({
transport: {
read: {
url: rootUrl(
"GetData/GetAirLines"
),
dataType:
"json"
,
data:
function
(e) {
return
{
data: JSON.stringify(airdata)
};
}
}
},
serverFiltering:
true
});
},
ClassSource:
function
(e) {
return
new
kendo.data.DataSource({
transport: {
read: {
url: rootUrl(
"GetData/Get_Air_Class_Details"
),
dataType:
"json"
}
}
});
},
AllianceSource:
function
(e) {
return
new
kendo.data.DataSource({
transport: {
read: {
url: rootUrl(
"GetData/GetAlliance"
),
dataType:
"json"
}
}
});
},
TimeTypeSource:
function
(e) {
return
new
kendo.data.DataSource({
data: [
{ Text:
"None"
, Value:
"-1"
},
{ Text:
"Departs"
, Value:
"D"
},
{ Text:
"Arrives"
, Value:
"A"
}
]
});
},
TimeTypeDataBound:
function
(e) {
debugger;
if
(e.data.ArriveDepartDetails.TimeType ==
null
) {
e.data.ArriveDepartDetails.set(
"TimeType"
,
"-1"
);
}
},
OnOpenOriginAutoComplete:
function
(e) {
debugger;
var
target = $(e.sender.element).data(
"kendoAutoComplete"
);
target.list.width(280);
},
SaveAirRequest:
function
(e) {
debugger;
if
($(
"#APISForm"
).kendoValidator().data(
"kendoValidator"
).validate()) {
if
(validateAirRequestForm()) {
kendo.ui.progress($(
"#AirRequest"
),
true
);
var
data = {
airRequestData: e.data
//AirRequestViewModel.AirItem.AirVMList
}
$.ajax({
type:
"POST"
,
contentType:
"application/json; charset=utf-8"
,
traditional:
true
,
data: JSON.stringify(data),
url: rootUrl(
"SearchAvailability/AirRequestMVVMSave"
),
success:
function
(response) {
debugger;
if
(response.Error ==
null
) {
RefreshServiceElements();
$(
"#AirRequest"
).data(
"kendoWindow"
).close();
}
else
{
ShowKendoMessage(
"Error: "
+ response.Error);
AirRequestViewModel.AirItem.AirVMList.Error =
null
;
}
kendo.ui.progress($(
"#AirRequest"
),
false
);
}
});
}
}
else
{
ShowKendoMessage(
"Please Enter Required Fields"
);
}
},
AddSegment:
function
(e) {
debugger;
// this.AirVMList.SegmentInfo.push(new this.AirVMList.SegmentInfo());
//AirRequestViewModel.AirItem.AirVMList.SegmentSkeleton
var
object = JSON.stringify(AirRequestViewModel.AirItem.AirVMList.SegmentSkeleton);
object = JSON.parse(object);
AirRequestViewModel.AirItem.AirVMList.SegmentInfo.splice(parseInt(e.data.index + 1), 0, object);
var
prevDestination = AirRequestViewModel.AirItem.AirVMList.SegmentInfo[parseInt(e.data.index)].ArriveDepartDetails.Destination;
AirRequestViewModel.AirItem.AirVMList.SegmentInfo[parseInt(e.data.index + 1)].ArriveDepartDetails
.set(
"Origin"
, prevDestination);
//AirRequestViewModel.AirItem.AirVMList.SegmentInfo.push(AirRequestViewModel.AirItem.AirVMList
// .SegmentSkeleton);
for
(
var
i = 0; i < AirRequestViewModel.AirItem.AirVMList.SegmentInfo.length; i++) {
this
.AirVMList.set(
"SegmentInfo["
+ i +
"].index"
, i);
}
},
RemoveSegment:
function
(e) {
debugger;
AirRequestViewModel.AirItem.AirVMList.SegmentInfo.splice(e.data.index, 1);
for
(
var
i = 0; i < AirRequestViewModel.AirItem.AirVMList.SegmentInfo.length; i++) {
this
.AirVMList.set(
"SegmentInfo["
+ i +
"].index"
, i);
}
},
ShowSegmentOptions:
function
(e) {
debugger;
},
FlightOriginOnOpen:
function
(e) {
debugger;
//var target = $(e.sender.element).data("kendoDropDownList");
//target.list.width(280);
},
ResetAirItem:
function
(e) {
debugger;
e.data.ArriveDepartDetails.set(
"Origin"
,
null
);
e.data.ArriveDepartDetails.set(
"Destination"
,
null
);
e.data.ArriveDepartDetails.set(
"DepartureDate"
,
null
);
e.data.ArriveDepartDetails.set(
"TimeType"
,
"-1"
);
e.data.ArriveDepartDetails.set(
"DepartureTime"
,
"00:00"
);
e.data.ArriveDepartDetails.set(
"via"
, []);
e.data.set(
"AirlineIds"
, []);
e.data.set(
"ClassCodeId"
,
null
);
e.data.set(
"FlightNumber"
,
null
);
e.data.set(
"Alliance"
,
null
);
e.data.set(
"Note"
,
null
);
},
HideSegmentOptions:
function
(e) {
debugger;
$(e.toElement).closest(
".segmentdiv"
).find(
".tobehidden"
).toggle();
$(e.toElement).closest(
".segmentdiv"
).find(
"#flipdown"
).toggle();
$(e.toElement).closest(
".segmentdiv"
).find(
"#flipup"
).toggle();
},
CancelAirRequest:
function
(e) {
debugger;
$(
"#AirRequest"
).data(
"kendoWindow"
).close();
}
});
$.when(
$.ajax({
url: rootUrl(
"SearchAvailability/GetAirRequestJSONData"
),
type:
"POST"
,
dataType:
"json"
,
data: { requestId: $(
"#RequestID"
).val() }
}),
loadTemplate(
"Content/Templates/AirRequestViewModelNew.tmpl.htm"
)
)
.then(onAirRequestWindowSuccess(airRequestViewModel))
.fail(onAirRequestWindowFailure);
}
All Datasource to etc. When select option any autocomplete or all other send read/filter request to . I know why its happening.