2017-11-14 16 views
0

私は共有レイアウトで1つのGridLookupコントロールを使用するDevexpress MVCアプリケーションを使用しています。ここでは、すべてのリクエストに対してメソッドを呼び出すコントローラーが必要でした。この目的のために、私はベースコントローラを使用し、ActionExecutingContextメソッドを使用して、私はメニューロードとgridlookupロードを呼び出しています。 viewdataを使用して値を設定しています。共有ビューでは、GridLookupコントロールのビューの一部を使用して、ビューデータをGridLookupにバインドしています。 以下は、gridlookupのメニューとフィルターを読み込むために使用される基本コントローラーです。以下共有レイアウトのバインドGridLookupコントロールmvc 5

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

iはgridlookup制御のpartialview以下

@Html.Partial("_ReportFilter")

この部分で使用GridLookup制御で使用している共有レイアウトである:上記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() 

をコントロールは、ProcessingMenusメソッドでロードしているビューデータを使用してバインディングデータを見ることができます。 GridLookupの最初の問題はコントローラーとアクションメソッドも使用しましたが、これはチェックして値をオフにして読み込みを表示しているときに呼び出されません。 2番目の問題はいつか後でurlを再度押すとOnActionExecutingメソッドはありませんそのために呼び出されたメニューは再び読み込まれません。

+0

この質問にお答えできますか?まだ誰かの返信を待っています。ご不明な点がありましたら、お尋ねください。 –

+0

DevExpressサポートに質問してみませんか? – Mikhail

+0

こんにちはミハイル、私はdevexpressフォーラムで同じ質問をして答えを得ました。 –

答えて

0

Devexpressチームからの回答は、共有ビューで部分ビューを呼び出すことです@Html.RenderAction( "action"、 "controller");}そして、そのアクションで表示する必要がある部分ビューを呼び出しますモデルデータを渡す共有レイアウト。 部分ビューでは、渡されたモデルでグリッドをバインドするだけです。

これだけです。

ありがとうございます。

関連する問題