0

Итак, у моего коллеги была глупая идея добавления рамки Dev express MVC на наш сайт. Я не могу за всю свою жизнь заставить его реагировать, как обычный макет html, при изменении размера разделителя. Я попытался поместить весь файл в представление сетки, но это похоже на собственную полосу прокрутки или что-то в этом роде. Любая помощь будет оценена по достоинству. В основном есть 3 файла. Web config, RootLayout и Main Layout. Я думаю, что это в C# (например, нет декларации px или style, но есть .pixel), поэтому, если кто-то может мне помочь, я был бы очень благодарен. Ниже приведены три файла.Попытка добавить отзывчивый стиль в следующем коде

ЗДЕСЬ Первый файл (ROOTLAYOUT.CSHTML)

@{ Layout = "~/Views/Shared/_rootLayout.cshtml"; } 

@Html.DevExpress().Splitter(settings => { 
settings.Name = "ContentSplitter"; 
settings.Width = System.Web.UI.WebControls.Unit.Percentage(100); 
settings.Height = System.Web.UI.WebControls.Unit.Percentage(100); 
settings.Styles.Pane.Paddings.Padding = System.Web.UI.WebControls.Unit.Pixel(0); 
settings.Styles.Pane.Border.BorderWidth = System.Web.UI.WebControls.Unit.Pixel(0); 

//settings.Panes.Add(subpane => { 
// subpane.Name = "ContentLeft"; 
// subpane.PaneStyle.CssClass = "leftPane"; 
// subpane.ShowCollapseBackwardButton = DefaultBoolean.False; 
// subpane.Size = System.Web.UI.WebControls.Unit.Pixel(200); 
// subpane.MinSize = System.Web.UI.WebControls.Unit.Pixel(150); 
// subpane.PaneStyle.Paddings.Padding = System.Web.UI.WebControls.Unit.Pixel(1); 
// subpane.SetContent(() => { 
//  Html.RenderPartial("ContentLeftPartialView"); 
// }); 
//}); 

settings.Panes.Add(subpane => { 
    subpane.Name = "ContentCenter"; 
    subpane.PaneStyle.CssClass = "contentPane"; 
    subpane.ScrollBars = System.Web.UI.WebControls.ScrollBars.Auto; 
    subpane.Separator.Visible = DefaultBoolean.True; 
    subpane.Size = System.Web.UI.WebControls.Unit.Pixel(200); 
    subpane.Separator.SeparatorStyle.Border.BorderWidth = System.Web.UI.WebControls.Unit.Pixel(1); 
    subpane.Separator.SeparatorStyle.BorderTop.BorderWidth = System.Web.UI.WebControls.Unit.Pixel(0); 
    subpane.SetContent(RenderBody().ToHtmlString()); 
}); 

    }).GetHtml() 

ЗДЕСЬ Второй файл (WebConfig)

 <?xml version="1.0" ?><configuration> 
    <configSections> 
    <sectionGroup name="system.web.webPages.razor"   type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
    <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> 
    <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> 
</sectionGroup> 
</configSections> 
<system.web.webPages.razor> 
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
<pages pageBaseType="System.Web.Mvc.WebViewPage"> 
    <namespaces> 
    <add namespace="System.Web.Mvc" /> 
    <add namespace="System.Web.Mvc.Ajax" /> 
    <add namespace="System.Web.Mvc.Html" /> 
    <add namespace="System.Web.Routing" /> 
    <add namespace="System.Web.UI.WebControls" /> 
    <add namespace="DevExpress.Utils" /> 
    <add namespace="DevExpress.Web" /> 
    <add namespace="DevExpress.Web.ASPxHtmlEditor" /> 
    <add namespace="DevExpress.Web.ASPxSpellChecker" /> 
    <add namespace="DevExpress.Web.ASPxThemes" /> 
    <add namespace="DevExpress.Web.ASPxTreeList" /> 
    <add namespace="DevExpress.XtraCharts" /> 
    <add namespace="DevExpress.XtraCharts.Web" /> 
    <add namespace="DevExpress.XtraReports" /> 
    <add namespace="DevExpress.XtraReports.UI" /> 
    <add namespace="DevExpress.XtraReports.Web" /> 
    <add namespace="DevExpress.XtraReports.Web.DocumentViewer" /> 
    <add namespace="DevExpress.XtraPivotGrid" /> 
    <add namespace="DevExpress.Data.PivotGrid" /> 
    <add namespace="DevExpress.Web.ASPxPivotGrid" /> 
    <add namespace="DevExpress.Web.Mvc" /> 
    <add namespace="DevExpress.Web.Mvc.UI" /> 
    <add namespace="DevExpress.XtraScheduler" /> 
    <add namespace="DevExpress.XtraScheduler.Native" /> 
    <add namespace="DevExpress.Web.ASPxScheduler" /> 
    <add namespace="DevExpress.DashboardWeb.Mvc" /> 
    <add namespace="DevExpress.Web.ASPxSpreadsheet" /> 
    </namespaces> 
</pages> 
</system.web.webPages.razor> 
<appSettings> 
<add key="webpages:Enabled" value="false" /> 
</appSettings> 
<system.web> 
<httpHandlers> 
    <add path="*" verb="*" type="System.Web.HttpNotFoundHandler" /> 
    </httpHandlers> 
    <!-- 
    Enabling request validation in view pages would cause validation to occur 
    after the input has already been processed by the controller. By default 
    MVC performs request validation before a controller processes the input. 
    To change this behavior apply the ValidateInputAttribute to a 
    controller or action. 
--> 
    <pages validateRequest="false" pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
    <controls> 
    <add assembly="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" /> 
    </controls> 
    </pages> 
    </system.web> 
    <system.webServer> 
    <validation validateIntegratedModeConfiguration="false" /> 
    <handlers> 
    <remove name="BlockViewHandler" /> 
    </handlers> 
    </system.webServer> 
    </configuration> 

ЗДЕСЬ Третий файл (MAINLAYOUT.CSHTML)

@Html.DevExpress().GetStyleSheets( 
new StyleSheet { ExtensionSuite = ExtensionSuite.NavigationAndLayout }, 
new StyleSheet { ExtensionSuite = ExtensionSuite.Editors }, 
new StyleSheet { ExtensionSuite = ExtensionSuite.HtmlEditor }, 
new StyleSheet { ExtensionSuite = ExtensionSuite.GridView }, 
new StyleSheet { ExtensionSuite = ExtensionSuite.PivotGrid }, 
new StyleSheet { ExtensionSuite = ExtensionSuite.Chart }, 
new StyleSheet { ExtensionSuite = ExtensionSuite.Report }, 
new StyleSheet { ExtensionSuite = ExtensionSuite.Scheduler }, 
new StyleSheet { ExtensionSuite = ExtensionSuite.TreeList }, 
new StyleSheet { ExtensionSuite = ExtensionSuite.Spreadsheet }, 
new StyleSheet { ExtensionSuite = ExtensionSuite.SpellChecker } 
    ) 
     @Html.DevExpress().GetScripts( 
     new Script { ExtensionSuite = ExtensionSuite.NavigationAndLayout }, 
     new Script { ExtensionSuite = ExtensionSuite.HtmlEditor }, 
     new Script { ExtensionSuite = ExtensionSuite.GridView }, 
     new Script { ExtensionSuite = ExtensionSuite.PivotGrid }, 
     new Script { ExtensionSuite = ExtensionSuite.Editors }, 
     new Script { ExtensionSuite = ExtensionSuite.Chart }, 
     new Script { ExtensionSuite = ExtensionSuite.Report }, 
new Script { ExtensionSuite = ExtensionSuite.Scheduler }, 
new Script { ExtensionSuite = ExtensionSuite.TreeList }, 
new Script { ExtensionSuite = ExtensionSuite.Spreadsheet }, 
new Script { ExtensionSuite = ExtensionSuite.SpellChecker } 
    ) 
</head> 

    <body style="background-color:#000000"> 

    @Html.DevExpress().Splitter(settings => 
    { 
settings.Name = "MainSplitter"; 
settings.AllowResize = false; 
settings.Orientation = System.Web.UI.WebControls.Orientation.Vertical; 
settings.FullscreenMode = true; 
settings.SeparatorVisible = false; 
settings.Styles.Pane.Border.BorderWidth = System.Web.UI.WebControls.Unit.Pixel(0); 
settings.Styles.Pane.Paddings.Padding = System.Web.UI.WebControls.Unit.Pixel(0); 

settings.Panes.Add(pane => 
{ 
    pane.Name = "Header"; 
    pane.AutoHeight = true; 
    pane.PaneStyle.BorderBottom.BorderWidth = System.Web.UI.WebControls.Unit.Pixel(1); 
    pane.PaneStyle.CssClass = "headerPane"; 
    pane.SetContent(() => 
    { 
     Html.RenderPartial("HeaderPartialView"); 
    }); 
}); 

settings.Panes.Add(pane => 
{ 
    pane.Name = "Content"; 
    pane.PaneStyle.CssClass = "mainContentPane"; 
    pane.MinSize = System.Web.UI.WebControls.Unit.Pixel(375); 
    pane.PaneStyle.BackColor = System.Drawing.Color.White; 
    pane.PaneStyle.BorderBottom.BorderWidth = System.Web.UI.WebControls.Unit.Pixel(1); 
    pane.SetContent(RenderBody().ToHtmlString()); 
}); 

settings.Panes.Add(pane => 
{ 
    pane.Name = "Footer"; 
    pane.Size = System.Web.UI.WebControls.Unit.Pixel(42); 
    pane.PaneStyle.CssClass = "footerPane"; 
    pane.SetContent(() => 
    { 
     Html.RenderPartial("FooterPartialView"); 
    }); 
    }); 
    }).GetHtml() 

ответ

0

DevExpress GridView на данный момент не реагирует. Итак, если вы хотите изменить его размер, когда размер области сплиттера будет изменен, вы можете попробовать this approach. Если задание отличается от другого, опишите его более подробно.

Вы также можете попытаться использовать Bootstrap as demonstrated here, чтобы скрыть определенные столбцы GridView. MVCxGridViewColumn имеет те же настройки, которые используются в этом потоке.

Обновлено

DX MVC GridView является adaptive now.

Смежные вопросы