在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; 时,它不会呈现该值。
我怎样才能完成这项工作?
非常感谢任何帮助。
由于
答案 0 :(得分:0)
这是不可能的。
您使用的<# ID #>
用于网格中的单行。它不能在.Columns()
方法之外使用。因此,您的列模板可能有效,但如果您检查发送给处理绑定的Action的内容,您将看到ID参数字面上等于“&lt; #ID#&gt;”。
对于通过网格的ActionLink,你想要什么ID?从哪一行?