KendoUI生成脚本但不运行它们

时间:2015-06-16 13:44:11

标签: javascript jquery asp.net-mvc kendo-ui kendo-grid

我有一个Kendo UI网格,其中有一个带有下拉列表的列,用于更改某些状态。它将生成网格,为输入字段下的下拉列表和脚本生成输入,但它们将以某种方式不继续。

当我复制这些脚本并在控制台中运行它们时,下拉列表将开始工作。

这是一个带有该下拉列表的网格列:

columns.Bound(update => update.FlowStatus)
        .Width(80)
        .Title("Status")
        .Encoded(true)
        //.ClientTemplate("<input class='dropDownStatus' data-value='#= FlowStatus #' data-id='#= Id #' />");
        .ClientTemplate(
            Html.Partial("FlowStatusesEditor", "statusDropDown" + "#=Id#").ToHtmlString()
        );

我使用的部分视图

@using Kendo.Mvc.UI;
@using Kendo.Mvc.Extensions;
@model String

@(Html.Kendo().DropDownList()
            .Name(Model)
            .DataSource(dataSource => dataSource
                .Read(read => read.Action
                    ("GetFlowStatuses", "Update")
                )
            )
            .DataValueField("Value")
            .DataTextField("Text")
            .ToClientTemplate()
)

知道该怎么做吗?

1 个答案:

答案 0 :(得分:0)

您需要为此调用kendo.template函数。 像这样更改列客户端模板

.ClientTemplate("#= flowStatusTemplate(flowStatus) #");

<script>
var flowStatusTemplate = kendo.template('@Html.Partial("FlowStatusesEditor", "statusDropDown" + "#=Id#").ToHtmlString()');
</script>

或者您可以将部分页面移动到像这样的脚本模板

<script id="tmpFlowStatus" type="text/x-kendo-template">
    @(Html.Kendo().DropDownList()
            .Name("FlowStatus")
            .DataSource(dataSource => dataSource
                .Read(read => read.Action
                    ("GetFlowStatuses", "Update")
                )
            )
            .DataValueField("Value")
            .DataTextField("Text")
            .ToClientTemplate()
    )
</script>

并像这样更改脚本

<script>
var flowStatusTemplate = kendo.template($("#tmpFlowStatus").html());
</script>