我使用模板来控制抽屉的呈现。当我放置标记并聚焦它时,我不能使用Enter键导航到所需的链接。组件会捕获onkeypress事件,而不应该这样做。
<管理>
<脚本suppress-error =跨度><跨度类="hljs-string" style="color: #a31515; background-color: #b5e61d">“BL9992”跨度><跨度风格="background-color: #b5e61d">>跨度><跨度类="hljs-built_in" style="color: #0000ff; background-color: #b5e61d">窗口跨度><跨度风格="background-color: #b5e61d">.navigateToHref =跨度>强大的><跨度类="hljs-function">(跨度><跨度类="hljs-params" style="background-color: #b5e61d">电动汽车跨度><跨度风格="background-color: #b5e61d">) = >跨度>强大的>跨度><强大的><跨度 style="background-color: #b5e61d">{跨度><跨度类="hljs-keyword" style="color: #0000ff; background-color: #b5e61d">如果跨度><跨度风格="background-color: #b5e61d">(电动汽车。键= = =跨度><跨度类="hljs-string" style="color: #a31515; background-color: #b5e61d">“进入”跨度><跨度风格="background-color: #b5e61d">){位置。href=电动汽车.target.href } }; 跨度>强大的>@*这个例子展示了如何创建页眉和页脚<跨度类="hljs-keyword" style="color: #0000ff">为跨度>打开抽屉,手动选择一个项目。*@ “@DrawerExpanded”跨度>数据=<跨度类="hljs-string" style="color: #a31515">“@ data”跨度>MiniMode=<跨度类="hljs-string" style="color: #a31515">“真正的”跨度>模式=<跨度类="hljs-string" style="color: #a31515">“@DrawerMode。推送”跨度>@bind-SelectedItem =<跨度类="hljs-string" style="color: #a31515">“@SelectedItem”跨度>@裁判=<跨度类="hljs-string" style="color: #a31515">“@DrawerRef”跨度>><跨度类="xml"><<跨度类="hljs-name" style="color: #0000ff">模板跨度>>跨度>@*头*@<跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">div跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">TelerikButton跨度><跨度类="hljs-attr" style="color: #ff0000">OnClick跨度>=<跨度类="hljs-string" style="color: #a31515">"@(() => DrawerRef.ToggleAsync())"跨度><跨度类="hljs-attr" style="color: #ff0000">图标跨度>=<跨度类="hljs-string" style="color: #a31515">“@FontIcon。菜单”跨度>/>跨度>@如果(抽屉里Expanded) {<跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">div跨度><跨度类="hljs-attr" style="color: #ff0000">类跨度>=<跨度类="hljs-string" style="color: #a31515">“text-info”跨度><跨度类="hljs-attr" style="color: #ff0000">风格跨度>=<跨度类="hljs-string" style="color: #a31515">“边界底部:固体;粗细:大胆的;margin-bottom: 3他们;空白:nowrap "}跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">一个跨度><跨度类="hljs-attr" style="color: #ff0000">href跨度>=<跨度类="hljs-string" style="color: #a31515">“https://google.com”跨度><跨度类="hljs-attr" style="color: #ff0000">onkeydown跨度>=<跨度类="hljs-string" style="color: #a31515">“navigateToHref(事件)”跨度>>跨度>我的自定义导航到谷歌<跨度类="hljs-tag" style="color: #0000ff"><跨度类="hljs-name" style="color: #0000ff">一个跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><跨度类="hljs-name" style="color: #0000ff">div跨度>>跨度>}其他的{<跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">div跨度><跨度类="hljs-attr" style="color: #ff0000">类跨度>=<跨度类="hljs-string" style="color: #a31515">“text-info”跨度><跨度类="hljs-attr" style="color: #ff0000">风格跨度>=<跨度类="hljs-string" style="color: #a31515">“边界底部:固体;粗细:大胆的;"跨度>>跨度>导航<跨度类="hljs-tag" style="color: #0000ff"><跨度类="hljs-name" style="color: #0000ff">div跨度>>跨度>}<跨度类="hljs-tag" style="color: #0000ff"><跨度类="hljs-name" style="color: #0000ff">div跨度>>跨度>*自定义项目渲染和项目选择*@<跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">div跨度><跨度类="hljs-attr" style="color: #ff0000">类跨度>=<跨度类="hljs-string" style="color: #a31515">“k-drawer-items”跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">ul跨度>>跨度>@如果(SelectedItem != null && DrawerExpanded) {<跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">李跨度><跨度类="hljs-attr" style="color: #ff0000">类跨度>=<跨度类="hljs-string" style="color: #a31515">“k-drawer-item”跨度><跨度类="hljs-attr" style="color: #ff0000">风格跨度>=<跨度类="hljs-string" style="color: #a31515">“空白:nowrap "}跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">div跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">p跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">强大的跨度>>跨度>@SelectedItem。文本<跨度类="hljs-tag" style="color: #0000ff"><跨度类="hljs-name" style="color: #0000ff">强大的跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><跨度类="hljs-name" style="color: #0000ff">p跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">p跨度>>跨度>@SelectedItem。描述<跨度类="hljs-tag" style="color: #0000ff"><跨度类="hljs-name" style="color: #0000ff">p跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><跨度类="hljs-name" style="color: #0000ff">div跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><跨度类="hljs-name" style="color: #0000ff">李跨度>>跨度>}@为each (var item in Data){@*使用onclick处理手动项目选择*@<跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">李跨度>@<跨度类="hljs-attr" style="color: #ff0000">onclick跨度>=<跨度类="hljs-string" style="color: #a31515">"@(() => SelectedItem = item)"跨度><跨度类="hljs-attr" style="color: #ff0000">类跨度>=<跨度类="hljs-string" style="color: #a31515">“k-drawer-item @GetSelectedItemClass(项)”跨度><跨度类="hljs-attr" style="color: #ff0000">风格跨度>=<跨度类="hljs-string" style="color: #a31515">“空白:nowrap "}跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">TelerikFontIcon跨度><跨度类="hljs-attr" style="color: #ff0000">图标跨度>=<跨度类="hljs-string" style="color: #a31515">“@item。图标”跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><跨度类="hljs-name" style="color: #0000ff">TelerikFontIcon跨度>>跨度>@如果(抽屉里Expanded) {<跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">div跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">div跨度>>跨度>@item。文本<跨度类="hljs-tag" style="color: #0000ff"><跨度类="hljs-name" style="color: #0000ff">div跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><跨度类="hljs-name" style="color: #0000ff">div跨度>>跨度>}<跨度类="hljs-tag" style="color: #0000ff"><跨度类="hljs-name" style="color: #0000ff">李跨度>>跨度>}<跨度类="hljs-tag" style="color: #0000ff"><跨度类="hljs-name" style="color: #0000ff">ul跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><跨度类="hljs-name" style="color: #0000ff">div跨度>>跨度>@*页脚*@ @if (DrawerExpanded) {<跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">div跨度><跨度类="hljs-attr" style="color: #ff0000">风格跨度>=<跨度类="hljs-string" style="color: #a31515">“text-align:中心;margin-top: 3他们;padding-top: 2 em;Border-top: 2px纯黑色;空白:nowrap "}跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">img跨度><跨度类="hljs-attr" style="color: #ff0000">src跨度>=<跨度类="hljs-string" style="color: #a31515">“user-avatar.png”跨度><跨度类="hljs-attr" style="color: #ff0000">alt跨度>=<跨度类="hljs-string" style="color: #a31515">“我的阿凡达”跨度><跨度类="hljs-attr" style="color: #ff0000">风格跨度>=<跨度类="hljs-string" style="color: #a31515">“这个特性:50%;宽度:50 px;高度:50 px;“跨度>/>跨度><跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">br跨度>/>跨度><跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">br跨度>/>跨度><跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">TelerikButton跨度><跨度类="hljs-attr" style="color: #ff0000">图标跨度>=<跨度类="hljs-string" style="color: #a31515">“@FontIcon。注销”跨度><跨度类="hljs-attr" style="color: #ff0000">ThemeColor跨度>=<跨度类="hljs-string" style="color: #a31515">“主”跨度>>跨度>注销<跨度类="hljs-tag" style="color: #0000ff"><跨度类="hljs-name" style="color: #0000ff">TelerikButton跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><跨度类="hljs-name" style="color: #0000ff">div跨度>>跨度>}<跨度类="hljs-tag" style="color: #0000ff"><跨度类="hljs-name" style="color: #0000ff">模板跨度>>跨度>跨度><跨度类="xml"><<跨度类="hljs-name" style="color: #0000ff">DrawerContent跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">div跨度><跨度类="hljs-attr" style="color: #ff0000">类跨度>=<跨度类="hljs-string" style="color: #a31515">“m-5”跨度>>跨度>@SelectedItem的内容?文本- @SelectedItem?描述<跨度类="hljs-tag" style="color: #0000ff"><跨度类="hljs-name" style="color: #0000ff">div跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><跨度类="hljs-name" style="color: #0000ff">DrawerContent跨度>>跨度>跨度> @code{公共TelerikDrawer DrawerRef {get;设置;}公共DrawerItem SelectedItem {get;设置;}公共bool DrawerExpanded {get;设置;} =<跨度类="hljs-literal" style="color: #a31515">真正的跨度>;public IEnumerable Data {get;设置;} =<跨度类="hljs-keyword" style="color: #0000ff">新跨度>列表< DrawerItem > {<跨度类="hljs-keyword" style="color: #0000ff">新跨度>DrawerItem {Text =<跨度类="hljs-string" style="color: #a31515">“购物车”跨度>, Icon = FontIcon。购物车,描述=<跨度类="hljs-string" style="color: #a31515">“购物车中的物品”跨度>},<跨度类="hljs-keyword" style="color: #0000ff">新跨度>DrawerItem {Text =<跨度类="hljs-string" style="color: #a31515">“设置”跨度>, Icon = FontIcon。齿轮,描述=<跨度类="hljs-string" style="color: #a31515">“我的个人资料设置”跨度>},<跨度类="hljs-keyword" style="color: #0000ff">新跨度>DrawerItem {Text =<跨度类="hljs-string" style="color: #a31515">“通知”跨度>, Icon = FontIcon。感叹圈,描述=<跨度类="hljs-string" style="color: #a31515">“我的个人资料通知”跨度>},<跨度类="hljs-keyword" style="color: #0000ff">新跨度>DrawerItem {Text =<跨度类="hljs-string" style="color: #a31515">“日历”跨度>, Icon = FontIcon。日历, Description =<跨度类="hljs-string" style="color: #a31515">“我的事件”跨度>}};公共字符串<跨度类="hljs-function">GetSelectedItemClass跨度>(<跨度类="hljs-params">DrawerItem项跨度>)跨度>{<跨度类="hljs-keyword" style="color: #0000ff">如果跨度>(设置SelectedItem = =<跨度类="hljs-literal" style="color: #a31515">零跨度>)<跨度类="hljs-keyword" style="color: #0000ff">返回跨度>string.Empty;<跨度类="hljs-keyword" style="color: #0000ff">返回跨度>SelectedItem.Text.ToLowerInvariant () .Equals (item.Text.ToLowerInvariant ()) ?<跨度类="hljs-string" style="color: #a31515">“text-info”跨度>:<跨度类="hljs-string" style="color: #a31515">”“跨度>;}公共<跨度类="hljs-class">类跨度><跨度类="hljs-title" style="color: #a31515">DrawerItem跨度>跨度>{公共字符串文本{获取;设置;} public FontIcon?图标{get;设置;}公共字符串描述{get;设置;}}
管理> < /
如果在渲染的Drawer组件中有一个句柄特性,可以展开和折叠组件,那就太好了。
例如,如下截图所示。
你好,
您是否可以为Drawer Item的默认绑定值添加一个Enabled参数(就像在Button组件中一样)?
当然,我可以用模板来处理这个问题,但实际上我不喜欢实现整个项目的行为和外观。
好吧,我有点懒,但我认为这将是一个发现添加到功能集。
致以最亲切的问候
基督教
我使用自定义抽屉项来处理打开和关闭抽屉的切换。每次单击自定义切换项时,我都会调用Drawer.ToggleAsync()(在<强大的>SelectedItemChanged强大的>事件处理程序)。如果抽屉开始展开,它将正确地折叠到迷你视图。但是,如果再次单击切换项,则抽屉会展开,然后立即自行重新折叠。我在调用Drawer.ToggleAsync()的代码上放置了一个断点,并且每次单击只击中一次。这是非常奇怪的行为。请帮我弄清楚到底是怎么回事。
P.S如果有更好的方法来处理点击我的自定义切换抽屉项目(而不是使用SelectedItemChanged),请让我知道。
<强大的>代码强大的>
@继承LayoutComponentBase 类跨度>=<跨度类="hljs-string" style="color: #a31515">“页面”跨度>>类跨度>=<跨度类="hljs-string" style="color: #a31515">“drawer-container”跨度>>裁判跨度>=<跨度类="hljs-string" style="color: #a31515">“@Drawer”跨度>数据=<跨度类="hljs-string" style="color: #a31515">“数据”跨度>MiniMode=<跨度类="hljs-string" style="color: #a31515">“真正的”跨度>扩大了=<跨度类="hljs-string" style="color: #a31515">“真正的”跨度>模式=<跨度类="hljs-string" style="color: #a31515">“@DrawerMode。推送”跨度>SelectedItemChanged=<跨度类="hljs-string" style="color: #a31515">"((DrawerItem item) => SelectedItemChangedHandler(item))"跨度>><内容> 类跨度>=<跨度类="hljs-string" style="color: #a31515">“主要”跨度>>类跨度>=<跨度类="hljs-string" style="color: #a31515">“内容px-4”跨度>@Body @code {<跨度类="hljs-keyword" style="color: #0000ff">公共跨度>TelerikDrawer Drawer {<跨度类="hljs-keyword" style="color: #0000ff">得到跨度>;<跨度类="hljs-keyword" style="color: #0000ff">集跨度>;}<跨度类="hljs-keyword" style="color: #0000ff">公共跨度>DrawerItem SelectedItem {<跨度类="hljs-keyword" style="color: #0000ff">得到跨度>;<跨度类="hljs-keyword" style="color: #0000ff">集跨度>;}<跨度类="hljs-keyword" style="color: #0000ff">公共跨度>IEnumerable Data {<跨度类="hljs-keyword" style="color: #0000ff">得到跨度>;<跨度类="hljs-keyword" style="color: #0000ff">集跨度>;}=<跨度类="hljs-keyword" style="color: #0000ff">新跨度>列表< DrawerItem > {<跨度类="hljs-keyword" style="color: #0000ff">新跨度>DrawerItem {Text =<跨度类="hljs-string" style="color: #a31515">“Item1”跨度>, Icon = IconName。收件箱},<跨度类="hljs-keyword" style="color: #0000ff">新跨度>DrawerItem {Text =<跨度类="hljs-string" style="color: #a31515">“第二条”跨度>, Icon = IconName。信息},<跨度类="hljs-keyword" style="color: #0000ff">新跨度>DrawerItem {Text =<跨度类="hljs-string" style="color: #a31515">“Item3”跨度>, Icon = IconName。MarkerPin},<跨度类="hljs-keyword" style="color: #0000ff">新跨度>DrawerItem{IsSeparator =<跨度类="hljs-literal" style="color: #a31515">真正的跨度>},<跨度类="hljs-keyword" style="color: #0000ff">新跨度>DrawerItem {Text =<跨度类="hljs-string" style="color: #a31515">“Item4”跨度>, Icon = IconName。收件箱},<跨度类="hljs-keyword" style="color: #0000ff">新跨度>DrawerItem {Text =<跨度类="hljs-string" style="color: #a31515">“Item5”跨度>, Icon = IconName。收件箱},<跨度类="hljs-keyword" style="color: #0000ff">新跨度>DrawerItem {Text =<跨度类="hljs-string" style="color: #a31515">“切换”跨度>, Icon = IconName。箭头箭头左,IsToggle =<跨度类="hljs-literal" style="color: #a31515">真正的跨度>}};<跨度类="hljs-function">受保护的跨度><跨度类="hljs-keyword" style="color: #0000ff">覆盖跨度>任务<跨度类="hljs-title" style="color: #a31515">OnInitializedAsync跨度>(<跨度类="hljs-params">)跨度>{SelectedItem = Data.First();<跨度类="hljs-keyword" style="color: #0000ff">返回跨度><跨度类="hljs-keyword" style="color: #0000ff">基地跨度>.OnInitializedAsync ();}<跨度类="hljs-keyword" style="color: #0000ff">公共跨度><跨度类="hljs-keyword" style="color: #0000ff">类跨度><跨度类="hljs-title" style="color: #a31515">DrawerItem跨度>{<跨度类="hljs-keyword" style="color: #0000ff">公共跨度><跨度类="hljs-keyword" style="color: #0000ff">字符串跨度>文本{<跨度类="hljs-keyword" style="color: #0000ff">得到跨度>;<跨度类="hljs-keyword" style="color: #0000ff">集跨度>;}<跨度类="hljs-keyword" style="color: #0000ff">公共跨度><跨度类="hljs-keyword" style="color: #0000ff">字符串跨度>图标{<跨度类="hljs-keyword" style="color: #0000ff">得到跨度>;<跨度类="hljs-keyword" style="color: #0000ff">集跨度>;}<跨度类="hljs-keyword" style="color: #0000ff">公共跨度><跨度类="hljs-keyword" style="color: #0000ff">保龄球跨度>IsSeparator {<跨度类="hljs-keyword" style="color: #0000ff">得到跨度>;<跨度类="hljs-keyword" style="color: #0000ff">集跨度>;}<跨度类="hljs-keyword" style="color: #0000ff">公共跨度><跨度类="hljs-keyword" style="color: #0000ff">保龄球跨度>IsToggle {<跨度类="hljs-keyword" style="color: #0000ff">得到跨度>;<跨度类="hljs-keyword" style="color: #0000ff">集跨度>;}}<跨度类="hljs-function">私人跨度><跨度类="hljs-keyword" style="color: #0000ff">异步跨度>任务<跨度类="hljs-title" style="color: #a31515">SelectedItemChangedHandler跨度>(<跨度类="hljs-params">DrawerItem项跨度>)跨度>{SelectedItem = item;<跨度类="hljs-keyword" style="color: #0000ff">如果跨度>(item.IsToggle) {<跨度类="hljs-keyword" style="color: #0000ff">等待跨度>抽屉里.ToggleAsync ();<跨度类="hljs-keyword" style="color: #0000ff">如果跨度>(抽屉。展开){项目。图标=图标Name.ArrowChevronRight; }<跨度类="hljs-keyword" style="color: #0000ff">其他的跨度>{项目。图标=图标Name.ArrowChevronLeft; } } } }
我讨厌把它称为bug,因为我确信我们遗漏了一些东西。以下是该场景的要点:
在身份验证的OnLogInSucceeded部分中。然后,我们从SQL表中构建用户特定的菜单,在分层的DrawerItem列表中构造它。
当我将其传递回TelerikDrawer的Data属性时,显示不会更新。stathaschanged没有任何影响。我们已经尝试将其绑定到一个“服务”上,以侦听变化。我们甚至调用了一个事件来手动进行更新。
主布局@继承LayoutComponentBase @注入NavigationManager @注入NavigationManager @注入PublicClient Http @注入IMatToaster toast @使用G2_Field。共享@using Microsoft.AspNetCore.Authorization @using Microsoft.AspNetCore.Components.WebAssembly.Authentication @inject IAuthorizationService AuthorizationService @inject Employee dbUSER @attribute [Authorize]<跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">TelerikRootComponent跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">div跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">NavMenu跨度>@<跨度类="hljs-attr" style="color: #ff0000">裁判跨度>=<跨度类="hljs-string" style="color: #a31515">“纳米”跨度><跨度类="hljs-attr" style="color: #ff0000">项目跨度>=<跨度类="hljs-string" style="color: #a31515">“@ data”跨度>/>跨度><跨度类="hljs-tag" style="color: #0000ff"><跨度类="hljs-name" style="color: #0000ff">div跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">div跨度><跨度类="hljs-attr" style="color: #ff0000">类跨度>=<跨度类="hljs-string" style="color: #a31515">“app-main”跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">div跨度><跨度类="hljs-attr" style="color: #ff0000">类跨度>=<跨度类="hljs-string" style="color: #a31515">“app-bar”跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">div跨度><跨度类="hljs-attr" style="color: #ff0000">风格跨度>=<跨度类="hljs-string" style="color: #a31515">“浮动:左”跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">TelerikButton跨度><跨度类="hljs-attr" style="color: #ff0000">OnClick跨度>=<跨度类="hljs-string" style="color: #a31515">“@ToggleDrawer”跨度><跨度类="hljs-attr" style="color: #ff0000">图标跨度>=<跨度类="hljs-string" style="color: #a31515">“@Telerik.Blazor.IconName.Menu”跨度><跨度类="hljs-attr" style="color: #ff0000">类跨度>=<跨度类="hljs-string" style="color: #a31515">“k-flat”跨度>/>跨度><跨度类="hljs-tag" style="color: #0000ff"><跨度类="hljs-name" style="color: #0000ff">div跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">div跨度><跨度类="hljs-attr" style="color: #ff0000">风格跨度>=<跨度类="hljs-string" style="color: #a31515">“浮动:正确的”跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">LoginDisplay跨度>/>跨度><跨度类="hljs-tag" style="color: #0000ff"><跨度类="hljs-name" style="color: #0000ff">div跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><跨度类="hljs-name" style="color: #0000ff">div跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">div跨度>>跨度>@Body<跨度类="hljs-tag" style="color: #0000ff"><跨度类="hljs-name" style="color: #0000ff">div跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><跨度类="hljs-name" style="color: #0000ff">div跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><跨度类="hljs-name" style="color: #0000ff">TelerikRootComponent跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">MatToastContainer跨度>/>跨度>@code{公共TelerikDrawer<跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">DrawerItem跨度>>跨度>抽屉{get;设置;}公共DrawerItem SelectedItem {get;设置;}公共bool扩展{get;设置;} = true;NavMenu海里;公共列表<跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">DrawerItem跨度>>跨度>数据{获取;设置;} = new List<跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">DrawerItem跨度>>跨度>{新DrawerItem {Text ="HOME", Icon = Telerik.Blazor.IconName。窗口,Description =" Home", URL=""}};public async Task ToggleDrawer() {await nm.ToggleDrawer();}公共async任务OnSidebarChange(列表<跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">DrawerItem跨度>>跨度>di){数据= di;Console.WriteLine (di.Last () .Children.Last()。text);等待nm.RefreshMenu (di);}……认证@page "/ AUTHENTICATION /{Action}" @using Microsoft.AspNetCore.Components.WebAssembly.Authentication @using G2_Field。共享@using System.Security.Claims @inject Employee dbUSER @inject PublicClient Http @using System.Threading.Tasks<跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">RemoteAuthenticatorView跨度><跨度类="hljs-attr" style="color: #ff0000">行动跨度>=<跨度类="hljs-string" style="color: #a31515">“@Action”跨度><跨度类="hljs-attr" style="color: #ff0000">OnLogInSucceeded跨度>=<跨度类="hljs-string" style="color: #a31515">@OnLogInSucceeded跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">LoggingIn跨度>>跨度>您将被重定向到https://login.microsoftonline.com。<跨度类="hljs-tag" style="color: #0000ff"><跨度类="hljs-name" style="color: #0000ff">LoggingIn跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><跨度类="hljs-name" style="color: #0000ff">RemoteAuthenticatorView跨度>>跨度>@code{[参数]公共字符串动作{获取;设置;} AppCategories[] iMenu = new AppCategories[0];[CascadingParameter] private任务<跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">AuthenticationState跨度>>跨度>一个uthenticationStateTask {get;设置;} [CascadingParameter] public任务<跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">AuthenticationState跨度>>跨度>AuthenticationState{得到;设置;} [CascadingParameter] public列表<跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">DrawerItem跨度>>跨度>D {get;设置;} [CascadingParameter(Name = "theMainLayout")] public MainLayout ml {get;设置;}公共async void OnLogInSucceeded() {var user =(等待AuthenticationState).User;var un = (await AuthenticationState).User.Claims.ToList();Var username = ";if (user.Identity.IsAuthenticated){//做一些事情控制台。WriteLine("登录成功事件触发");foreach (Claim u in un) {//Console.WriteLine(u。Type + " = " + u.Value.ToString());if (u.Type == "preferred_username") {username = u.Value.ToString(); } } dbUSER = await Http.Client.GetJsonAsync<跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">员工跨度>>跨度>("/api/Index/GetCurrentEmployee/" + username);控制台。WriteLine("EmpUserName=" + dbUSER.EmpUserName);var gUserName = duser . empusername;iMenu = await Http.Client.GetJsonAsync<跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">AppCategories []跨度>>跨度>("/api/Index/GetUserAppCategories/" + gUserName);d = new List<跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">DrawerItem跨度>>跨度>();d.添加(新的DrawerItem {Text = "HOME", Icon = "fa-home", Description = "HOME", URL = ""});foreach (var app in immenu){列表<跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">DrawerItem跨度>>跨度>y = new List<跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">DrawerItem跨度>>跨度>();为each (var cat在app.ItemList) {DrawerItem z =新的DrawerItem {Text = cat。MenuItemTitle,图标= cat。菜单ItemIcon, Description = cat.MenuItemDescription, URL = cat.MenuItemURL }; y.Add(z); } DrawerItem x = new DrawerItem { Text = app.MenuCategoryTitle, Icon = Telerik.Blazor.IconName.Menu, Description = app.MenuCategoryTitle, Children = y }; d.Add(x); } StateHasChanged(); = new MainLayout(); ml.OnSidebarChange(d); } }... NAVMENU @inject NavigationManager navigationManager @using Microsoft.AspNetCore.Components.Authorization @using Microsoft.AspNetCore.Components.WebAssembly.Authentication @using G2_Field.Shared<跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">TelerikDrawer跨度>@<跨度类="hljs-attr" style="color: #ff0000">裁判跨度>=<跨度类="hljs-string" style="color: #a31515">“@Drawer”跨度><跨度类="hljs-attr" style="color: #ff0000">数据跨度>=<跨度类="hljs-string" style="color: #a31515">“@items”跨度><跨度类="hljs-attr" style="color: #ff0000">MiniMode跨度>=<跨度类="hljs-string" style="color: #a31515">“假”跨度><跨度类="hljs-attr" style="color: #ff0000">模式跨度>=<跨度类="hljs-string" style="color: #a31515">“@DrawerMode。覆盖”跨度><跨度类="hljs-attr" style="color: #ff0000">TItem跨度>=<跨度类="hljs-string" style="color: #a31515">“DrawerItem”跨度><跨度类="hljs-attr" style="color: #ff0000">SelectedItemChanged跨度>=<跨度类="hljs-string" style="color: #a31515">“@OnItemSelect”跨度>@<跨度类="hljs-attr" style="color: #ff0000">bind-Expanded跨度>=<跨度类="hljs-string" style="color: #a31515">“@Expanded”跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">模板跨度><跨度类="hljs-attr" style="color: #ff0000">上下文跨度>=<跨度类="hljs-string" style="color: #a31515">“AuthDrawerContext”跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">div跨度><跨度类="hljs-attr" style="color: #ff0000">类跨度>=<跨度类="hljs-string" style="color: #a31515">“k-drawer-items”跨度><跨度类="hljs-attr" style="color: #ff0000">角色跨度>=<跨度类="hljs-string" style="color: #a31515">“菜单条”跨度><跨度类="hljs-attr" style="color: #ff0000">aria-orientation跨度>=<跨度类="hljs-string" style="color: #a31515">“垂直”跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">ul跨度>>跨度>@为each (var item在AuthDrawerContext) {var selectedClass = item == SelectedItem ?"k-state-selected": string.Empty;<跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">李跨度>@<跨度类="hljs-attr" style="color: #ff0000">onclick跨度>=<跨度类="hljs-string" style="color: #a31515">"@(() => OnItemSelect(item))"跨度><跨度类="hljs-attr" style="color: #ff0000">类跨度>=<跨度类="hljs-string" style="color: #a31515">“k-drawer-item @selectedClass”跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">div跨度><跨度类="hljs-attr" style="color: #ff0000">类跨度>=<跨度类="hljs-string" style="color: #a31515">“k-level @ (item.Level)”跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">TelerikIcon跨度><跨度类="hljs-attr" style="color: #ff0000">图标跨度>=<跨度类="hljs-string" style="color: #a31515">“@item。图标”跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><跨度类="hljs-name" style="color: #0000ff">TelerikIcon跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">跨度跨度><跨度类="hljs-attr" style="color: #ff0000">类跨度>=<跨度类="hljs-string" style="color: #a31515">“k-item-text”跨度>>跨度>@item。文本<跨度类="hljs-tag" style="color: #0000ff"><跨度类="hljs-name" style="color: #0000ff">跨度跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><跨度类="hljs-name" style="color: #0000ff">div跨度>>跨度>@如果(项目。展开&& (item.Children?.Any() ??假)){<跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">跨度跨度><跨度类="hljs-attr" style="color: #ff0000">类跨度>=<跨度类="hljs-string" style="color: #a31515">“k-icon k-i-arrow-chevron-down”跨度><跨度类="hljs-attr" style="color: #ff0000">风格跨度>=<跨度类="hljs-string" style="color: #a31515">位置:绝对的;右:0;行高:继承;边距:0 8px"跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><跨度类="hljs-name" style="color: #0000ff">跨度跨度>>跨度>}其他的如果(!展开&& (item.Children?.Any() ??假)){<跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">跨度跨度><跨度类="hljs-attr" style="color: #ff0000">类跨度>=<跨度类="hljs-string" style="color: #a31515">“k-icon k-i-arrow-chevron-right”跨度><跨度类="hljs-attr" style="color: #ff0000">风格跨度>=<跨度类="hljs-string" style="color: #a31515">位置:绝对的;右:0;行高:继承;边距:0 8px"跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><跨度类="hljs-name" style="color: #0000ff">跨度跨度>>跨度>}<跨度类="hljs-tag" style="color: #0000ff"><跨度类="hljs-name" style="color: #0000ff">李跨度>>跨度>}<跨度类="hljs-tag" style="color: #0000ff"><跨度类="hljs-name" style="color: #0000ff">ul跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><跨度类="hljs-name" style="color: #0000ff">div跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><跨度类="hljs-name" style="color: #0000ff">模板跨度>>跨度><跨度类="hljs-tag" style="color: #0000ff"><跨度类="hljs-name" style="color: #0000ff">TelerikDrawer跨度>>跨度>@code{[参数]公共列表<跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">DrawerItem跨度>>跨度>Items {get;设置;公共TelerikDrawer<跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">DrawerItem跨度>>跨度>抽屉{get;设置;}公共DrawerItem SelectedItem {get;设置;}公共bool扩展{get;设置;} = true;公共列表<跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">DrawerItem跨度>>跨度>数据{获取;设置;} = new List<跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">DrawerItem跨度>>跨度>{新DrawerItem {Text ="HOME", Icon = Telerik.Blazor.IconName。窗口,Description = "Home", URL = ""}};public async Task ToggleDrawer() => await Drawer.ToggleAsync();OnInitialized() {items = Data;SelectedItem = items.First();StateHasChanged ();}公共void OnHover(){}公共async任务RefreshMenu(列表<跨度类="hljs-tag" style="color: #0000ff"><<跨度类="hljs-name" style="color: #0000ff">DrawerItem跨度>>跨度>Di) {items = Di;}
迷你模式对于节省宝贵的屏幕空间非常有用,但是在迷你模式下,用户只能看到一组图标。
我如何为每个迷你模式图标添加鼠标悬停/悬停描述性文本,以便用户不必展开菜单来查看他们想要的图标?我真的不想诉诸jQuery,但这是一个例子,它可能是唯一的解决方案。
顺便说一句,抽屉组件非常出色。
亲切的问候,
保罗