当前位置: 首页 > news >正文

专做水果店加盟的网站网站模板设计

专做水果店加盟的网站,网站模板设计,排名优化关键词公司,在线视频播放网站建设原文链接:https://blazor-university.com/templating-components-with-renderfragements/creating-a-tabcontrol/创建一个 TabControl 组件源代码[1]接下来我们将创建一个 TabControl 组件。这将教您如何实现以下目标:将数据传递到 RenderFragment 以为其…

原文链接:https://blazor-university.com/templating-components-with-renderfragements/creating-a-tabcontrol/

创建一个 TabControl 组件

源代码[1]

接下来我们将创建一个 TabControl 组件。这将教您如何实现以下目标:

  1. 将数据传递到 RenderFragment 以为其提供上下文。

  2. 使用 CascadingParameter 将父 TabControl 组件传递到其子 TabPage 组件。

6b89ecb40245099f2baa52c9de7bdabf.gif

使 TabPage 知道其父级

第一步是创建两个组件。一个命名为 TabControl,另一个命名为 TabPageTabPage 组件将需要对其父 TabControl 的引用,这将通过 TabControl 将自身设置为 CascadingValue 中的值来实现,并且 TabPage 将通过 CascadingParameter 获取该值。

<div>This is a TabControl</div>
<CascadingValue Value="this">@ChildContent
</CascadingValue>@code {// Next line is needed so we are able to add <TabPage> components inside[Parameter]public RenderFragment ChildContent { get; set; }
}
<div>This is a TabPage</div>
@ChildContent@code {[CascadingParameter]private TabControl Parent { get; set; }[Parameter]public RenderFragment ChildContent { get; set; }protected override void OnInitialized(){if (Parent == null)throw new ArgumentNullException(nameof(Parent), "TabPage must exist within a TabControl");base.OnInitialized();}
}

使 TabControl 知道其所属页面

更改 TabPage 组件,以便通过在其 OnInitialized 方法的末尾添加以下行来通知其父级它的存在。

Parent.AddPage(this);

更改 TabControl 组件以添加 AddPage 方法并存储引用。另外,让我们添加一个 ActivePage 属性。

public TabPage ActivePage { get; set; }
List<TabPage> Pages = new List<TabPage>();internal void AddPage(TabPage tabPage)
{Pages.Add(tabPage);if (Pages.Count == 1)ActivePage = tabPage;StateHasChanged();
}

为每个 TabPage 呈现一个选项卡

TabPage 组件添加一个 Text 参数,以便其父 TabControl 知道要在激活每个页面的按钮内显示什么文本。

[Parameter]
public string Text { get; set; }

然后将以下标记添加到 TabControl(就在呈现 ChildContent 的位置上方),这将呈现选项卡,并在单击选项卡时更改选择哪个 TabPage

<div class="btn-group" role="group">@foreach (TabPage tabPage in Pages){<button type="button"class="btn @GetButtonClass(tabPage)"@onclick=@( () => ActivatePage(tabPage) )>@tabPage.Text</button>}
</div>

标记将创建一个标准的 Bootstrap 按钮组,然后为每个 TabPage 创建一个具有以下显著特征的按钮:

  1. CSS 类设置为“btn”,由 GetButtonClass 方法返回附加内容。如果选项卡是 ActivePage,这将是“btn-primary”,如果不是,则为“btn-secondary”。

  2. 单击按钮时,它将激活为其创建按钮的页面。

注意: @onclick 需要一个无参数的方法,所以在 @() 中使用了一个 lambda 表达式来使用正确的 TabPage 执行 ActivatePage

  1. 按钮的文本设置为 TabPageText 属性的值。

并将以下内容添加到 TabControl 的代码部分。

string GetButtonClass(TabPage page)
{return page == ActivePage ? "btn-primary" : "btn-secondary";
}void ActivatePage(TabPage page)
{ActivePage = page;
}

使用选项卡控件

将以下标记添加到页面并运行应用程序。

<TabControl><TabPage Text="Tab 1"><h1>The first tab</h1></TabPage><TabPage Text="Tab 2"><h1>The second tab</h1></TabPage><TabPage Text="Tab 3"><h1>The third tab</h1></TabPage>
</TabControl>

仅显示活动页面

此时 TabControl 将显示所有 TabPages。要解决此问题,只需更改 TabPage 中的标记,使其仅在它是其父 TabControlActivePage 时才呈现其 ChildContent

@if (Parent.ActivePage == this)
{@ChildContent
}

参考资料

[1]

源代码: https://blazor-university.com/templating-components-with-renderfragements/creating-a-tabcontrol/

http://www.yutouwan.com/news/281/

相关文章:

  • 外国做挂的网站是多少钱手机网页在线
  • 免费自己创建个人网站北京seo公司司
  • 网站开发做原型吗广东建设信息网成绩查询
  • 网站建设配图建设银行互联网网站
  • 免费做网站哪家好中国互联网排名
  • 网站建设推广最简单的话术建设银行潍坊支行网站
  • 全景网站开发温州市建设工程质监站网站
  • 如何制作网页网站网站百度突然不收录了
  • 怎么写一个网站程序个人网站 flash
  • 专业做化学招聘的网站有哪些杭州网站定制开发
  • 平东网站建设帮您做网站
  • 成都网站建设木子网络企业邮箱与个人邮箱有什么区别
  • 做网站v1认证是什么意思猪八戒网网站设计
  • 福州公交集团网站建设上海自贸区注册公司优惠政策
  • 设计外包网站别墅设计 网站模板
  • 可以做代发货源的网站seo网站优化推广怎么样
  • 从化网站建设方案微信如何建立自己的公众号
  • 网站发展建设思路哪里有免费的网站推广软件
  • 温州网站制作系统临港注册公司优惠政策
  • 网站建设情况的报告用ps怎样做网站文字logo
  • 商城网站的建设定位2023年电脑端网游
  • 北京网站建设公司那个好西安网站建设公司
  • 网页制作网站知识哈尔滨网络公司资讯
  • 网站ftp用户名和密码seo服务销售招聘
  • 网站建设 齐鲁软件园seo优化内页排名
  • 校园电子商务网站建设规划书实例wordpress部署到git
  • 网站开始是怎么做的什么是网络营销服务?网络营销服务有哪些特点?
  • 国外怎么做推广网站嵌入式开发要学哪些
  • 网站建设企业服务器seo系统是什么
  • 学做美食的视频网站有哪些新郑市网站建设