在Telerik MVC 3.0网格(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 #>"}
的值当我试图访问<#=ID#>在网格绑定之后,它不会呈现值。我怎样才能得到这份工作?
如有任何帮助,我们将不胜感激。
感谢
这是不可能的。
您正在使用的<# ID #>
用于网格中的单行。它不能在.Columns()
方法之外使用。因此,您的列模板可能会工作,但如果您检查发送给处理绑定的Action的内容,您会发现ID参数实际上等于"<#ID#>"。
对于经过网格的ActionLink,您想要什么ID?从哪一排?