提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|行业资讯|编辑:龚雪|2024-10-22 11:27:35.560|阅读 14 次
概述:本文主要为大家介绍如何在静态SSR模式下使用DevExpress Blazor Drawer组件,欢迎下载最新版体验!
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
Microsoft的 .NET 8 UI框架引入了静态服务器端呈现模式(静态SSR)——组件在服务器端呈现,然后返回到客户端,没有任何交互,DevExpress Blazor Drawer组件需要交互式呈现模式来动态地改变其IsOpen状态。
在本文中,我们将回顾在静态SSR渲染模式下动态显示/隐藏DevExpress Blazor Drawer组件的两种策略:
P.S.:DevExpress拥有.NET开发需要的所有平台控件,包含600多个UI控件、报表平台、DevExpress Dashboard eXpressApp 框架、适用于 Visual Studio的CodeRush等一系列辅助工具。
DevExpress技术交流群10:532598169 欢迎一起进群讨论
对于这个例子,我们使用的是一个Microsoft Blazor项目模板创建的Blazor Web应用程序。在这个应用程序中,注册了适当的DevExpress资源,并用以下代码替换了MainLayout.razor页面中的内容。
MainLayout.razor
<style> .dxbl-drawer > .dxbl-drawer-panel > .dxbl-drawer-body { padding: 0; } </style> <DxDrawer PanelWidth="250px" IsOpen="@true"> <BodyTemplate> <div class="sidebar"> <NavMenu /> </div> </BodyTemplate> <TargetContent> <div class="top-row px-4"> Here will be a toggle element. <a href="//learn.microsoft.com/aspnet/core/" target="_blank">About</a> </div> <article class="content px-4"> @Body </article> </TargetContent> </DxDrawer>
这个标记创建一个永久可见的drawer,用户可以使用它在页面之间导航,但还不能修改可见性。
查询参数是紧跟页面URL的?字符串后面的,这些参数可以为组件属性设置值。
要使用查询参数并更改drawer的IsOpen属性值,您必须:
1. 使用 属性指定drawer的IsOpen参数来自查询字符串。
<DxDrawer IsOpen="@IsOpen"> ... @code { [SupplyParameterFromQuery] public bool IsOpen { get; set; } }
2. 添加一个元素来控制drawer的可见性,将其封装在导航到当前页面但切换IsOpen参数的NavLink组件中。
@inject NavigationManager NavigationManager <style> .drawer-toggler { position: absolute; appearance: none; cursor: pointer; width: 2rem; height: 2rem; top: 0.75rem; left: 0.75rem; border: 1px solid rgba(50, 50, 50, 0.1); background: url("data:image/svg+xml,%3csvg xmlns='//www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2850, 50, 50, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") no-repeat center/1.75rem rgba(50, 50, 50, 0.1); } </style> ... @* Here will be a toggle element. *@ <NavLink href="@(new Uri(NavigationManager.Uri).LocalPath + "?IsOpen=" + (!IsOpen).ToString())"> <input type="checkbox" title="Navigation menu" class="drawer-toggler"/> </NavLink> ...
这样用户就可以点击切换按钮来显示/隐藏drawer,但是当用户导航到另一个页面时,drawer将消失。要解决此限制,请向导航链接添加`IsOpen`查询参数,如下所示。
3. 在NavMenu组件中添加IsOpen参数。
MainLayout.razor
<NavMenu IsOpen="@IsOpen" />
4. 用以下代码替换NavMenu.razor文件中的代码。
NavMenu.razor
<div class="top-row ps-3 navbar navbar-dark"> <div class="container-fluid"> <a class="navbar-brand" href="">BlazorApp</a> </div> </div> <nav class="flex-column"> <div class="nav-item px-3"> <NavLink class="nav-link" href="@GetUrlWithParameter("")" Match="NavLinkMatch.All"> <span class="bi bi-house-door-fill-nav-menu" aria-hidden="true"></span> Home </NavLink> </div> <div class="nav-item px-3"> <NavLink class="nav-link" href="@GetUrlWithParameter("weather")"> <span class="bi bi-list-nested-nav-menu" aria-hidden="true"></span> Weather </NavLink> </div> </nav> @code { [Parameter] public Boolean IsOpen { get; set; } string GetUrlWithParameter(string url) { return url + "?IsOpen=" + IsOpen.ToString(); } }
现在用户可以通过导航菜单复选框控制drawer的可见性。
注意:此方法在DevExpress Blazor项目模板(v24.1.6+)中使用。
CSS规则允许您根据其他组件的状态有条件地对元素应用样式,使用这种方法,我们将根据复选框状态切换drawer可见性(将其宽度设置为0)。要实现此功能,您必须:
1. 添加一个复选框元素来切换drawer的可见性。
<style> .drawer-toggler { position: absolute; appearance: none; cursor: pointer; width: 2rem; height: 2rem; top: 0.75rem; left: 0.75rem; border: 1px solid rgba(50, 50, 50, 0.1); background: url("data:image/svg+xml,%3csvg xmlns='//www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2850, 50, 50, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") no-repeat center/1.75rem rgba(50, 50, 50, 0.1); } </style> ... @* Here will be a toggle element. *@ <input type="checkbox" title="Navigation menu" class="drawer-toggler" checked /> ...
2. 添加以下CSS规则,在未选中复选框时将drawer面板宽度设置为零。
.dxbl-drawer:has(.drawer-toggler:not(:checked)) .dxbl-drawer-panel { width: 0 !important; }
这样,用户就可以单击复选框来显示/隐藏drawer。
完整代码如下:
<style> .dxbl-drawer > .dxbl-drawer-panel > .dxbl-drawer-body { padding: 0; } .drawer-toggler { position: absolute; appearance: none; cursor: pointer; width: 2rem; height: 2rem; top: 0.75rem; left: 0.75rem; border: 1px solid rgba(50, 50, 50, 0.1); background: url("data:image/svg+xml,%3csvg xmlns='//www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2850, 50, 50, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") no-repeat center/1.75rem rgba(50, 50, 50, 0.1); } .dxbl-drawer:has(.drawer-toggler:not(:checked)) .dxbl-drawer-panel { width: 0 !important; } </style> <DxDrawer PanelWidth="250px" IsOpen="@true"> <BodyTemplate> <div class="sidebar"> <NavMenu /> </div> </BodyTemplate> <TargetContent> <div class="top-row px-4"> <input type="checkbox" title="Navigation menu" class="drawer-toggler" checked /> <a href="//learn.microsoft.com/aspnet/core/" target="_blank">About</a> </div> <article class="content px-4"> @Body </article> </TargetContent> </DxDrawer>
为了帮助您入门,我们创建了一个示例,演示如何使用CSS来控制Drawer的可见性,以及如何修改移动设备上的组件配置。您可以从我们的GitHub仓库下载这个例子:。
更多产品需求,欢迎咨询“”~
更多DevExpress线上公开课、中文教程资讯请上中文网获取
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
文章转载自:慧都网通过提供强大的3D CAD数据访问工具并适用于桌面、移动和Web的高级环境3D可视化发动机,HOOPS在提升造船设计和制造流程的效率方面发挥了重要作用。
HOOPS Luminate在汽车行业中的应用具有广泛的潜力和深远的影响。它通过提供高效的3D可视化、虚拟装配与拆解、性能分析、客户定制等功能,帮助汽车制造商在设计、生产和销售过程中提升效率、降低成本并提高产品质量。
在不断发展的软件开发世界中,使工具和框架与最新的平台版本保持同步至关重要,欢迎查阅~
全球航运业对国际贸易至关重要,全球 90% 以上的商品通过海运运输。准确监控和控制这些集装箱的移动对于维持高效的供应链至关重要。手动输入集装箱号码是这一程序的关键部分,它带来了相当大的挑战,例如人为错误和效率低下。
行业领先的界面控件开发包,帮助企业构建卓越应用!
DevExpress DXperience Subscription高性价比的企业级.NET用户界面套包,助力企业创建卓越应用!
DevExpress WinForms Subscription为Windows Forms平台创建具有影响力的业务解决方案,高性价比WinForms界面控件套包。
DevExpress WPF Subscription高效MVVM开发模式,WPF界面解决方案首选工具,帮助企业实现酷炫动效界面。
DevExpress ASP.NET Controls多款重量级ASP.NET用户界面组件套包,让您快速开发出完美、强大的应用程序!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢