Как поставить значение ClientFooterTemplate из БД вместо суммы - PullRequest
0 голосов
/ 30 августа 2018

Пожалуйста, поймите, что я использую Google Translator, потому что я не владею английским языком.

Я хочу указать в ClientFooterTemplate GRID определенное значение, а не сумму.

Это имя столбца, которое не имеет никакого отношения к значению столбца позиции, которую необходимо вывести, и не существует в столбце сетки.

Я хотел бы указать его как значение, полученное из БД.

Если в событии OnDataBound имеется более одного значения результата запроса, к нему осуществляется доступ с помощью dataitem, и соответствующее значение помещается в скрытое текстовое поле.

Затем мы попытались ввести следующий вывод. (Я не знаю, как использовать clientFooterTemplate, поэтому я написал функцию JavaScript.)

Присоедините контроллер READ & GRID по запросу. Я использую выражения RAZOR в других частях, но не использую их в частях, которые хочу создать.

.ClientFooterTemplate("#: kendo.toString(fn_GetCnt(), '\\#\\#,\\#') #")

function fn_GetCnt () {
    return $ ("# ALO_03_CNT"). val ();
}

 public ActionResult ALO_Read([DataSourceRequest]DataSourceRequest request, string GUBUN, string ALO_ID, string ALO_01, string ALO_02ST, string ALO_02ED, string CAR_04, string RUT_04, int ALO_03, int ALO_04, string ALO_10, string RUT_04G, string CAR_05, string RUT_14, string ALO_05, string TMP2)
    {           
        testQuery Query = new testQuery();
        JsonResult returnJsonResult = new JsonResult();

        ALO_02ST = ALO_02ST.Replace("-", "");
        ALO_02ED = ALO_02ED.Replace("-", "");
        List<AloModels> list = Query.SP_ALO_SELECT(GUBUN, ALO_ID, ALO_01, ALO_02ST, ALO_02ED, CAR_04, RUT_04, ALO_03, ALO_04, ALO_10, RUT_04G, CAR_05, RUT_14, ALO_05, TMP2);

returnJsonResult = Json(list.ToDataSourceResult(request), 
JsonRequestBehavior.AllowGet);
returnJsonResult.MaxJsonLength = 2147483647;

        return returnJsonResult;
    }


  @( Html.Kendo().Grid<BUSCB.Models.AloModels>()
        .Name("grid")
        .DataSource(dataSource => dataSource
            .Ajax()
            .ServerOperation(true)
            .PageSize(20)
            .Read(read => read.Action("ALO_Read", "ANB").Data("readParam"))
            .Events(events => events
                .RequestEnd("onRequestEnd")
                .RequestStart("onRequestStart")
            )
        .Aggregates(aggregates =>
        {
            aggregates.Add(p => p.ALO_05).Sum();
            aggregates.Add(p => p.ALO_06).Sum();
            aggregates.Add(p => p.ALO_07).Sum();
            aggregates.Add(p => p.ALO_08).Sum();
            aggregates.Add(p => p.ALO_09).Sum();
            aggregates.Add(p => p.ALO_05_A).Sum();
            aggregates.Add(p => p.ALO_05_B).Sum();
        })
        )
    .Columns(columns =>
    {
    columns.Bound(o => o)
            .Width(30)
            .HeaderTemplate(@<text><input type='checkbox' id='selectAll' onclick="checkAll(this)" /></text>)
                .HtmlAttributes(new { style = "text-align:center" })
                .HeaderHtmlAttributes(new { style = "text-align:center" })
                .ClientTemplate("<input type='checkbox' #= isChecked ? checked='checked':'' # class='chkbx' />");         
        columns.Bound(o => o.CAR_04)
            .Title("Car No.")
            .Width(150)
            .ClientFooterTemplate("#: kendo.toString(fn_GetCnt(), '\\#\\#,\\#') #")
            .HeaderHtmlAttributes(new { style = "text-align:center;vertical-align:middle;" })
            .HtmlAttributes(new { style = "text-align:left;white-space:nowrap;" })
            .FooterHtmlAttributes(new { style = "text-align:right;white-space:nowrap;" });        
       })
        .HtmlAttributes(new { style = "height: 712px;", @class = "page1" })
            .Pageable(pageable => pageable
                .PageSizes(false)
                .Refresh(true)
                .ButtonCount(10)
                )
            .Scrollable()
            .Sortable()
            .Events(events => events
                .Change("OnRowClick")
                .DataBound("onDataBound")
            )               
            .ToolBar(tools => tools.Excel().Text("Excel"))
            .Excel(excel => excel
                .FileName(ViewBag.ExcelName)
                .AllPages(true)
                .Filterable(true)
                .ProxyURL(Url.Action("Excel_Export_Save", "AdminRegister")))
            .Reorderable(r => r.Columns(true))
            .Resizable(r => r.Columns(true))
            .Selectable()
    )

Хотя это сработало как задумано, Проблема была в сроках.

Вместо того чтобы рисовать полученное значение alo_03_cnt, он рисует сетку до того, как будет сделано onDataBound.

(То есть при повторном поиске значение alo_03_cnt будет правильно отображаться в нижнем колонтитуле.)

Как поставить значение перед рисованием сетки?

...