簡體   English   中英

Kendo UI數據源問題

[英]Kendo UI datasource issue

我在搜索頁面上使用了Kendo UI網格:

   @(Html.Kendo().Grid<SMT.Models.SpecimenDetail>()
    .Name("SpecimenDetailGrid")
    .Columns(columns =>
    {
        columns.Bound(e => e.uniqueID).Hidden();
        columns.Bound(e => e.contact_business_email).Width(120).Title("Owner Email");
        columns.Bound(e => e.contact_business_phone).Width(120).Title("Owner Phone");
    })
    .ToolBar(tools =>
            {
                tools.Excel();
                tools.Custom().Text("Back to Specimen Summary").HtmlAttributes(new { id = "goBack", style = "margin-left: 880px;" });
            })
    .Excel(excel => excel
        .AllPages(true)
        .FileName("SpecimenDetailGridData.xlsx")
        .Filterable(true)
        .ProxyURL(Url.Action("Excel_Export_Save", "Home"))
        )
    .Resizable(x => x.Columns(true))
    .Reorderable(x => x.Columns(true))
    .HtmlAttributes(new { style = "height:500px;" })
    .Pageable()
    .AutoBind(false)
    .Editable(e => e.Mode(GridEditMode.InLine))
    .DataSource(datasource => datasource
        .Ajax()
                .Model(model => { 
                    model.Id(p => p.uniqueID);
                    model.Field(p => p.SampleID).Editable(false);
                    model.Field(p => p.company_business_name).Editable(false);

                    // disable company name on edit
                    // model.Field(p => p.company_business_name).Editable(false);
                })
        .Read(read => read.Action("GetSpecimenDetail", "Home").Data("FillSearchParms"))
        .Update(update => update.Action("UpdateSpecimen", "Home").Data("FillUpdateParms"))
        .Destroy(destroy => destroy.Action("DeleteSpecimen", "Home"))
        .PageSize(10)
        .Events(e => { e.RequestEnd("onRequestEnd");})
        )
)

在同一頁面上,我們有一個按鈕,該按鈕調用刷新網格的jQuery函數:

   $(document).ready(function () {

    $("#SearchBtn").click(function (e) {
        e.preventDefault();

        $("#divSearchSpecimenDetail").attr("style", "display: block;");

        var grid = $("#SpecimenDetailGrid").data("kendoGrid");

        //think this is the problem
        grid.datasource.data = "FillSearchParams";
        grid.dataSource.read();
        grid.refresh();

        e.preventDefault();
        hideColumns(specimenCat);

        $("#searchbar").data("kendoPanelBar").collapse($("li.k-state-active"));
    })
});

和另一個jQuery函數,用於選擇搜索參數:

function FillSearchParms() {
    var units = defaultDDObj("Units");
    var specimenCat = defaultDD("SpecimenCategory");

    //debugger;

    var searchParms = {
        SpecimenCategory: specimenCat,
        Units: units.Value,

        uniqueID: $("#uniqueID").val(),
        SampleID: $("#SampleID").val(),

        ThicknessAtWeld1From: $("#ThicknessAtWeld1From").val(),
        ThicknessAtWeld1To: $("#ThicknessAtWeld1To").val(),

        OverlayThicknessFrom: $("#OverlayThicknessFrom").val(),
        OverlayThicknessTo: $("#OverlayThicknessTo").val(),

    }

問題是,無論出於何種原因,單擊按鈕都將調用讀取操作,而不是FillSearchParams調用。 對於Kendo和jQuery來說較新,所以我認為我只是在格式化行:

grid.datasource.data = "FillSearchParams";

在按鈕呼叫中。

提前致謝。

需要在jQuery調用中添加以下行:

grid.dataSource.page(1);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM