请了解我使用的是Google Translator,因为我不会说英语。
我想在GRID的ClientFooterTemplate中添加一个特定的值,而不是总和。
该列名与要输出的位置的列值无关,并且在网格列中不存在。
我想把它作为从数据库接收到的值。
如果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的值将正确显示在页脚中。)
如何在绘制网格之前输入值?