【问题标题】:Bind GridLookup control in shared layout mvc 5在共享布局 mvc 5 中绑定 GridLookup 控件
【发布时间】:2017-11-14 08:54:33
【问题描述】:

我正在使用 Devexpress MVC 应用程序,我在共享布局中使用了一个 GridLookup 控件。我在这里需要一些控制器,它将在每个请求上调用一个方法。为此,我使用了基本控制器并使用了 ActionExecutingContext 方法,我在其中调用了菜单加载和 gridlookup 加载。我正在使用 viewdata 来设置值,在共享视图中我使用了 GridLookup 控件的部分视图,我将 viewdata 绑定到 GridLookup。 下面是用于加载gridlookup的菜单和过滤器的Base控制器。

protected override void OnActionExecuting(ActionExecutingContext context)
{
     base.OnActionExecuting(context);
     ProcessingMenus();
}

下面是我使用gridlookup控件部分视图的共享布局

@Html.Partial("_ReportFilter")

下面是本部分使用的GridLookup控件:

@{
     var gridLookup = Html.DevExpress().GridLookup(settings =>
     {
         settings.Name = "LookupLobMultiple";
         settings.KeyFieldName = "Description";
         settings.GridViewProperties.CallbackRouteValues = new { Controller = "Manage", Action = "BindLOB" };
         settings.Properties.SelectionMode = GridLookupSelectionMode.Multiple;
         settings.Properties.TextFormatString = "{0}";
         settings.Properties.MultiTextSeparator = ";";
         settings.CommandColumn.Visible = true;
         settings.CommandColumn.ShowSelectCheckbox = true;
         settings.CommandColumn.SelectAllCheckboxMode = GridViewSelectAllCheckBoxMode.AllPages;
         settings.GridViewProperties.SettingsPager.Visible = false;
         settings.GridViewProperties.Settings.ShowGroupPanel = false;
         settings.GridViewProperties.Settings.ShowFilterRow = false;
         settings.Columns.Add("ID").Visible = false;
         settings.Columns.Add("Description").Caption = "Line of Business";
         settings.PreRender = (s, e) =>
         {
              MVCxGridLookup gl = (MVCxGridLookup)s;
              gl.GridView.Selection.SelectRowByKey(ViewData["LOB"]);
         };
    });
}
@gridLookup.BindList(ViewData["LobModal"]).GetHtml()

在上面的 GridLookup 控件中,您可以看到正在使用 ProcessingMenus 方法加载的 viewdata 绑定数据。 这里的第一个问题是在 GridLookup 中,我也使用了控制器和操作方法,但是当我检查和取消选中任何值并显示 Loading... 时,这并没有调用。 第二个问题,如果我再次点击 url OnActionExecuting 方法没有调用,因为它菜单没有再次加载。

【问题讨论】:

  • 有人可以回答这个问题吗?还在等别人的回复。如有任何疑问,请询问。
  • 那你为什么不问问 DevExpress 支持?
  • 嗨 Mikhail,我在 devexpress 论坛上问过同样的问题并得到了答案。
  • 我建议您在这里重新发布官方答案,如果有帮助,请批准。

标签: asp.net-mvc devexpress-mvc


【解决方案1】:

我发现 Devexpress 团队的答案是在共享视图中调用局部视图使用 @{Html.RenderAction("action", "controller");} 然后在该操作中调用需要在共享中显示的局部视图带有传递模型数据的布局。 在局部视图中,只需将网格与传递的模型绑定即可。

就是这样。

感谢您的所有建议。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-06
    • 2012-11-20
    • 2018-03-22
    相关资源
    最近更新 更多