Telerik标签中的嵌套内容

时间:2013-06-07 14:28:03

标签: telerik grid

我在Telerik标签中嵌套内容时遇到问题。在我的标签片中,我有一个Telerik网格。我想使用clienttemplate在其中一个网格列中显示下拉列表。标签条看起来像这样(为简洁起见删除了内容):

tabstrip.Add()
    .Text("Products").SpriteCssClasses("label-info")
    .HtmlAttributes(new { style = "background-color: #ffffff;" })
    .Enabled(false).Selected(true)
    .Content(@<text>
        @using (Html.BeginForm("Products", "FeeSchedule", FormMethod.Post, new { @class = "form-horizontal", id = "indexForm" }))
    }
    </text>);

我有一个嵌套在标签页标签中的Telerik网格:

@(Html.Telerik().Grid<FB_LOOKUP_PRODUCTS>()
    .Name("Grid")
    .HtmlAttributes(new { style = "width:80%" })
    .ToolBar(commands => commands.Insert())
    .DataKeys(keys => keys.Add(m => m.PRODUCT_ID))
    .DataBinding(dataBinding => dataBinding.Ajax()
        .Select("_ProductsTest", "FeeSchedule")
        .Update("UpdateOrder", "Grid")
        .Insert("UpdateOrder", "Grid"))
    .Columns(columns =>
    {
        columns.Bound(m => m.PRODUCT_NME).Width(300).Title("Products");
        columns.Bound(m => m.PRODUCT_ID).Title("Product ID").ClientTemplate(
            @<text>
                @RenderTabStripContent()
            </text>
        );
        columns.Command(commands => commands.Edit()).Title("Edit").Width(70);
    })
    .Editable(editing => editing.Mode(GridEditMode.InLine))
    .Pageable()
)

我正在尝试使用@helper模板(@RenderTabStripContent())来显示网格列中的下拉列表。这是模板的样子:

@helper RenderTabStripContent()
{
    @<text>
        @(Html.Telerik().DropDownList()
            .Name("PRODUCT_ID")
            .BindTo(new SelectList((IEnumerable)ViewBag.Products, "PRODUCT_ID", "PRODUCT_NME", "Select..."))
            .HtmlAttributes(new { style = "width:250px;" })
        )
    </text>                   
}

我无法让这个工作。我一直收到以下标记错误:

分析程序错误消息:无法嵌套内联标记块(@

内容

)。只允许一级内联标记。

非常感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

尝试替换它:

columns.Bound(m => m.PRODUCT_ID).Title("Product ID").ClientTemplate(
    @<text>
        @RenderTabStripContent()
    </text>
);

用这个:

columns.Bound(m => m.PRODUCT_ID).Title("Product ID").ClientTemplate(
        RenderTabStripContent()
);