kendo 滚动视图作为 clientTemplate 在提供模板时不起作用

问题描述 投票:0回答:2

我正在使用 Kendo

ASP.NET MVC
制作网站页面。

我需要的是一个带有详细信息行的表格。在该详细信息行中,我需要 Kendo ScrollView 来显示图像。

当我尝试使用模板格式化

ScrollView
数据时,遇到错误,指示包含
ScrollView
的模板无效。

我是否无法使用嵌套模板

ScrollViews
,或者有没有办法实现这一点?

<script id="showDefectDetails" type="text/x-kendo-template">
    @(Html.Kendo().ScrollView()
        .Name("scrollView_#=DefectID#")
        .ContentHeight("100%")
        .TemplateId("scrollview-template")
        .DataSource(dataSource => dataSource
            .Custom()
            .Type("aspnetmvc-ajax")
            .Transport(transport => transport
            .Read(read => read.Action("DefectImage_Read", "InspectionData", new { defectId = "#=DefectID#" }))
            )
            .Schema(s => s.Data("Data").Total("Total"))
            .ServerPaging(true)
            .PageSize(1))
        .HtmlAttributes(new { style = "height:40vh; width:80vw" })
        .ToComponent()
        .ToClientTemplate()
    )
</script>

<script id="scrollview-template" type="text/x-kendo-template">
    <p>#=data.DisplayName#</p>
</script>`
asp.net-mvc kendo-ui kendo-grid scrollview
2个回答
0
投票

请记住,kendo MVC 包装器如下:

@(Html.Kendo().ScrollView()

在服务器上由 Razor 进行处理,并在页面发送到浏览器之前转换为 JavaScript。

Kendo 模板依次在浏览器中进行处理。我不知道浏览器拥有“showDefectDetails”脚本后会是什么样子,但它似乎在模板上下文中最终无效。您可以使用浏览器工具来查找并查看您实际拥有的内容。

我看到您这里有一条模板化数据:

.Name("scrollView_#=DefectID#")

我怀疑这是否会像你希望的那样工作,因为在页面到达浏览器之前,它已经在服务器上进行了处理。

我的建议是使用 jquery 插件语法而不是模板中的 Razor 语法创建滚动视图。


0
投票

最终的解决方案是直接将滚动视图的内容以 HTML 形式写入模板函数

© www.soinside.com 2019 - 2024. All rights reserved.