【发布时间】:2017-01-18 18:34:52
【问题描述】:
继承了我正在尝试修复的 Kendo 应用程序,并且确实卡在了这里。我有一个绑定到数据源两次的搜索页面,无法弄清楚。
这是网格代码:
@(Html.Kendo().Grid<Flex.Models.AddEntryEditModel>()
.Name("EventGrid")
.Columns(columns =>
{
columns.Command(command =>
{
command.Edit(); command.Destroy(); command.Custom("Copy and Create").Click("copyNAddEvent")
.HtmlAttributes(new {@class = "copynadd"});
}).Width(169).Title("Action");
columns.Bound(e => e.id).Hidden();
columns.Bound(e => e.contactName).Width(180).Title("Contact Name");
columns.Bound(e => e.contactEmail).Width(180).Title("Contact Email");
columns.Bound(e => e.contactPhone).Width(180).Title("Contact Phone #");
})
.HtmlAttributes(new { style = "height:500px;" })
.ToolBar(tools => { tools.Excel(); })
.Excel(excel => excel
.AllPages(true)
.FileName("FlexData.xlsx")
.Filterable(true)
.ProxyURL(Url.Action("Excel_Export_Save", "Home"))
).Events(x => x.ExcelExport("onExcelExport"))
.DataSource(datasource => datasource
.Ajax()
.ServerOperation(false)
.Model(model => {
model.Id(p => p.id);
model.Field(p => p.application).Editable(false);
model.Field(p => p.componentType).Editable(false);
model.Field(p => p.creditedOrSupportEquipment).Editable(false);
model.Field(p => p.driverType).Editable(false);
model.Field(p => p.eventName).Editable(false);
model.Field(p => p.PMinterval).Editable(false);
model.Field(p => p.PMName).Editable(false);
model.Field(p => p.scheduledMaintenance).Editable(false);
model.Field(p => p.equipmentOperatingHours).Editable(false);
model.Field(p => p.companyName).Editable(false);
model.Field(p => p.plantName).Editable(false);
model.Field(p => p.supportingEventDocument).Editable(false);
})
.Read(read => read.Action("SearchEvents", "Home").Data("FillSearchParms"))
.Update(update => update.Action("UpdateEvent", "Home").Data("FillUpdateParms"))
.Destroy(update => update.Action("DeleteEvent", "Home"))
.PageSize(10)
.Events(e =>
{
e.RequestEnd("onRequestEnd");
})
)
)
这是我用于搜索按钮的 jQuery:
$("#SearchBtn").click(function (e) {
e.preventDefault();
if (!validator.validate()) {
return;
}
var descr = $("#Description").data("kendoEditor");
//debugger;
$.ajax({
type: "POST",
url: "/Home/SearchEvents",
datatype: "json",
data: {
id: null,
eventDate: $("#EventDate").val(),
eventDateTo: $("#EventDateTo").val(),
application: defaultDD("Application"),
componentType: defaultDD("ComponentType"),
creditedOrSupportEquipment: defaultDD("CreditedOrSupportEquipment"),
equipmentID: $("#EquipmentId").val(),
driverType: defaultDD("DriverType"),
eventName: defaultDD("EventName"),
make: $("#Make").val(),
model: $("#Model").val(),
PMinterval: defaultDD("PMInterval"),
PMName: defaultDD("PMName"),
scheduledMaintenance: defaultDD("ScheduledMaintenance"),
equipmentOperatingHours: defaultDD("equipmentOperatingHours"),
companyName: defaultDD("CompanyName"),
plantName: defaultDD("PlantName"),
},
success: function (result) {
$("#searchEventGrid").attr("style", "display: block;");
//debugger;
var grid = $("#EventGrid").data("kendoGrid");
grid.dataSource.read();
grid.refresh();
e.preventDefault();
$("#searchbar").data("kendoPanelBar").collapse($("li.k-state-active"));
},
error: function (xhr, txt) {
//debugger;
var err = xhr.responseText.match(/.*<body.*>([\s\S]*)<\/body>.*/); ;
custom_alert(err, "Error!");
}
})
})
当我单击搜索按钮时,它会第一次返回正确的记录集,然后刷新并返回整个数据集。刚接触剑道,不知道第二个电话是从哪里来的。
【问题讨论】:
标签: jquery kendo-ui kendo-asp.net-mvc