0
我需要在Kendo UI MVC網格的ClientTemplate內部使用razor函數內部使用綁定列值。像「AnyColumnValue」參數如下:將約束列值傳遞給MVC Kendo UI Grid的剃刀功能
.ClientTemplate(@KendoHtmlFuncs.RequestingDeleteWithConfirmationLink(itemNameL, AnyColumnValue));
全部例子如下:
@(Html.Kendo().Grid<DisplayOfGroupCompanyVm>()
.Name(itemNameL + "-definitions-grid")
.Columns(columns =>
{
columns.Bound(c => c.Name);
columns.Bound(c => c.DateCreated).ClientTemplate("#= kendo.toString(DateCreated,'yyyy-MM-dd')#"); //.Width(150);
columns.Bound(c => c.IsActive);
columns.Bound(c => c.CreateStatus);
columns.Template(@<text></text>)
.Width(100)
.ClientTemplate(@KendoHtmlFuncs.GetModalForRequestingEditLink(itemNameL));
columns.Template(@<text></text>)
.Width(100)
.ClientTemplate(@KendoHtmlFuncs.RequestingDeleteWithConfirmationLink(itemNameL, AnyColumnValue));
})
什麼是AnyColumnValue?綁定到網格的dataSource中的列的實際值?如果是這樣,你不能做你想做的事情,因爲KendoHtmlFuncs.RequestingDeleteWithConfirmationLink()是一個服務器端函數(在cshtml呈現期間在服務器上執行),但是AnyColumnValue在網格綁定到dataSource之前沒有值客戶端。看起來你必須使RequestingDeleteWithConfirmationLink()成爲客戶端函數......你不能*在ClientTemplate中執行*服務器代碼。 –
@TheDreadPirateStephen謝謝,它是正確的。除此之外,是否有解決方法將列值用作剃刀功能的參數? – serefbilge
我不這麼認爲,因爲列的值不存在於服務器上(執行剃鬚刀功能的地方)。您*可以*使用ClientTemplate中的實際列值,因爲在呈現該行時ClientTemplate在客戶端上執行,您不能調用Razor函數,因爲它已在服務器上執行以生成HTML然後將視圖返回給客戶端。請參閱http://docs.telerik.com/aspnet-mvc/helpers/grid/configuration#clienttemplate或提供函數的實現和您傳遞的列,然後我將嘗試寫出答案。 –