Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Razor 使用ClientTemplates和AjaxBinding时,如何覆盖Telerik MVC网格编辑器弹出窗口_Razor_Telerik Mvc - Fatal编程技术网

Razor 使用ClientTemplates和AjaxBinding时,如何覆盖Telerik MVC网格编辑器弹出窗口

Razor 使用ClientTemplates和AjaxBinding时,如何覆盖Telerik MVC网格编辑器弹出窗口,razor,telerik-mvc,Razor,Telerik Mvc,我有一个用户角色列表,我正试图在我的网格列中显示,并试图在编辑弹出窗口中为其设置自定义模板 我尝试过使用显示/编辑器模板,但发现ajax绑定不支持这些模板(因为模型总是空的)。因此,对列端的修复是在有问题的列上使用.ClientTemplate。。。在我的表格的以下简化示例中有效 @( Html.Telerik().Grid<UserSearchModel>() .Name("Grid") .DataKeys(keys => { keys.Add(p =>

我有一个用户角色列表,我正试图在我的网格列中显示,并试图在编辑弹出窗口中为其设置自定义模板

我尝试过使用显示/编辑器模板,但发现ajax绑定不支持这些模板(因为模型总是空的)。因此,对列端的修复是在有问题的列上使用.ClientTemplate。。。在我的表格的以下简化示例中有效

@( Html.Telerik().Grid<UserSearchModel>()
    .Name("Grid")
    .DataKeys(keys => { keys.Add(p => p.UserId); })
    .Columns(columns =>
           {
               columns.Bound(o => o.UserId).Visible(false) ;
               if(Context.User.IsInRole("Admin")) columns.Bound(o=>o.CompanyName).Width(100);
               columns.Bound(o => o.RolesModel).ClientTemplate("<strong><#= RolesModel.RoleName #></strong>");
               columns.Command(commands =>
               {
                   commands.Edit().ButtonType(type);
               }).Width(180).Title("Commands");       
           })
    .DataBinding(dataBinding => dataBinding.Ajax()
                   .Select("_AjaxBinding", "Users")
                           .Update("Edit", "Users")
                               .Insert("Create", "Users")
                 )
    .Resizable(resizing => resizing.Columns(true))
    .Reorderable(reorder => reorder.Columns(true))
    .Editable(editable => editable.Mode(GridEditMode.PopUp))
    .Pageable(p=> p.PageSize(13))
    .Sortable()
    .Scrollable(scrolling => scrolling.Height("400px"))
    .Groupable()
    .Filterable()
@(Html.Telerik().Grid())
.名称(“网格”)
.DataKeys(keys=>{keys.Add(p=>p.UserId);})
.列(列=>
{
columns.Bound(o=>o.UserId).Visible(false);
if(Context.User.IsInRole(“Admin”))columns.Bound(o=>o.CompanyName).Width(100);
columns.Bound(o=>o.RolesModel.ClientTemplate(“”);
columns.Command(commands=>
{
commands.Edit().ButtonType(类型);
}).宽度(180)。标题(“命令”);
})
.DataBinding(DataBinding=>DataBinding.Ajax()
.选择(“用户”)
.更新(“编辑”、“用户”)
.插入(“创建”、“用户”)
)
.resizeable(resize=>resize.Columns(true))
.Reorderable(reorder=>reorder.Columns(true))
.Editable(可编辑=>Editable.Mode(GridEditMode.PopUp))
.Pageable(p=>p.PageSize(13))
.Sortable()
.scrolling可滚动(滚动=>scrolling.Height(“400px”))
.Groupable()
.可过滤()
)

但这不会传递到编辑弹出窗口。。。因此,我的问题是如何覆盖弹出窗口以显示我已将.ClientTemplate分配给的列的自定义显示


我尝试使用WindowBuilder(.Window(w=>w.Content(“…这里的内容…”))但没有效果。每次都会弹出默认的编辑窗口。

有关在ASP.NET MVC中编辑嵌套对象的详细信息,我建议您检查

还可以指定局部视图,该视图可用作编辑器窗体:

.Editable(editing => editing.TemplateName("TemplateName"))

通过使用约定,我可以实现相同的功能。我将GridEditMode指定为PopUp,然后在下面的路径中放置一个与我的模型同名的视图

~/Views/Shared/EditorTemplate/ModelName.cshtml


我这样做是因为网格有相同类型的子元素,我实际上不需要指定模板。

虽然这两个博客解决方案都不能使用ajax绑定……但您提供的实际代码似乎起到了关键作用,我想指出,为了达到弹出式要求,标签必须看起来像:。可编辑(editable=>editable.Mode(GridEditMode.PopUp).TemplateName(“用户”))