Telerik MVC网格访问数据输出网格绑定

时间:2012-01-24 16:47:49

标签: asp.net-mvc-3 telerik-grid telerik-mvc

在Telerik MVC 3.0 Grid(Razor引擎)中

如何在网格绑定后访问数据。 我正在使用详细视图选项卡 使用下面的代码。

items.Add()
     .Text("Additional Tab")
     .Content(@<text>
    @(Html.Telerik()
          .Grid<Models.PModel>()
          .Name( "Additional_<#= AddressID #>" )
          .DataBinding( dataBinding => dataBinding.Ajax()
                                                  .Select( "Action", "Controller", new { ID = "<#= ID #>" } ) )
          .Pageable()
          .Sortable()
          .Columns( columns =>
          {
            columns.Bound( e => e.Name ).Title( "Name" ).Width( 150 );
            columns.Bound( e => e.Email ).Title( "Email" );
            columns.Bound( e => e.Status ).Title( "Prescriber Status" );
            columns.Template( e => e.ID ).ClientTemplate( 
                        Ajax.ActionLink( "Edit", "EditDetails", new { ID = "<#= ID #>", PID = "<#= PID #>" }, 
                        new AjaxOptions
                        {
                            OnSuccess = "LoadAddEditForm",
                            UpdateTargetId = "ShowAddEditFormDialogModel",
                            InsertionMode = InsertionMode.Replace
                        },
                        new { @class = "button" } ).ToString() );
          } )
         .NoRecordsTemplate( "No additional added for this" )
    )
@Ajax.ActionLink("Add New", "AddEdit", "Controller", 
    new { ID =  "<#= ID #>"},
    new AjaxOptions
    {
        OnSuccess = "LoadAddEditForm",
        UpdateTargetId = "ShowAddEditFormDialogModel",
        InsertionMode = InsertionMode.Replace
    }, 
    new { @class = "button", id="AjaxAddNewButton" })
</text>);

现在问题是,如果您注意到我在网格绑定后添加了一个Ajax.Action链接。

@Ajax.ActionLink("Add New", "AddEdit", "Controller", 
    new { ID =  "<#= ID #>"},
    new AjaxOptions
    {
        OnSuccess = "LoadAddEditForm",
        UpdateTargetId = "ShowAddEditFormDialogModel",
        InsertionMode = InsertionMode.Replace
    },
    new { @class = "button", id="AjaxAddNewButton" })

在这个Ajax链接中,我可以获得对象new { ID = "<#= ID #>"}的值 当我尝试在网格绑定后访问&lt;#= ID#&gt; 时,它不会呈现该值。 我怎样才能完成这项工作?

非常感谢任何帮助。

由于

1 个答案:

答案 0 :(得分:0)

这是不可能的。

您使用的<# ID #>用于网格中的单行。它不能在.Columns()方法之外使用。因此,您的列模板可能有效,但如果您检查发送给处理绑定的Action的内容,您将看到ID参数字面上等于“&lt; #ID#&gt;”。

对于通过网格的ActionLink,你想要什么ID?从哪一行?