【问题标题】:Telerik MVC Grid - HiddenIndexerInputForModel in ClientTemplateTelerik MVC Grid - ClientTemplate 中的 HiddenIndexerInputForModel
【发布时间】:2011-10-21 23:07:19
【问题描述】:

MVC3 和使用 Telerik Grid。

我正在使用 Phil Haacks Hidden Indexer Input For Model 来恢复表单值。唯一的问题是,当使用 Ajax 作为数据绑定器时,使用的任何模板都需要具有相应的 ClientTemplate。这是我遇到问题的地方。如何将它和迭代器插入到需要字符串的 ClientTemplate 中?

这是我尝试但无济于事的……当我运行该页面时,我收到一条错误消息,提示“未定义 Iter”。

<% int Iter = 0; %>
<% Html.Telerik().Grid(Model.TransferStudents)
       .Name("TransferStudents")
        .Columns(columns =>
                {
                    columns.Bound(o => o.Name)
                        .Width(250);
                    columns.Template(o =>{%> 

                        <%: Html.HiddenFor(model => Model.TransferStudents[Iter].StudentId)%>
                        <%: Html.CheckBoxFor(model => Model.TransferStudents[Iter].Transfer)%>
                        <%})
                        .ClientTemplate("<input type='hidden' id='StudentId' value='<#= StudentId #>' /><input type='checkbox' name='Transfer' <#= Transfer?  \"checked='checked'\" :\"\" #> />")
                        .HtmlAttributes(new { @style = "text-align: center;" })
                        .HeaderHtmlAttributes(new { @style = "text-align: center;" })
                        .HeaderTemplate("Check All <input type='checkbox' id='chkAll' />")
                        .Width(105);
                    columns.Template(o =>{ %><% Iter = Iter + 1; %><%})
                        .ClientTemplate("<# Iter = Iter + 1; #>")
                        .Hidden();
                    columns.Template(o =>{ %><%: Html.HiddenIndexerInputForModel()%><% })
                        .ClientTemplate("<#= Html.HiddenIndexerInputForModel() #>")
                        .Hidden();
                })
        .DataBinding(dataBinding => dataBinding.Ajax().OperationMode(GridOperationMode.Server).Select("_Transfer", "Administration"))
        .Pageable(paging => paging.Style(pagerStyles).PageSize(2, new[] { 5, 10, 15, 25, 50, 200 }).Position(GridPagerPosition.Top).Total((int)ViewData["total"]))
        .Sortable()
        .NoRecordsTemplate("<p class='instructions'>No Records Available</p>")
        .Render();
        %>

任何指针将不胜感激。

【问题讨论】:

    标签: asp.net-mvc-3 telerik


    【解决方案1】:

    ClientTemplate 需要一个字符串,该字符串将被翻译成 JavaScript 并在浏览器(客户端)中执行。诸如 Html.HiddenIndexerInputForModel() 之类的任何服务器代码都不起作用 - 没有等效的 JavaScript。您需要像在另一列中所做的那样使用纯 html。

    【讨论】:

    • 发现这个可行 columns.Template(o => { %> ") .Hidden(); columns.Template(o => { %>") .Hidden();
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多