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

做门户网站需要多少钱素材网视频

做门户网站需要多少钱,素材网视频,品牌网站建设价格,品牌营销策划公司哪家好原文链接#xff1a;https://blazor-university.com/forms/descending-from-inputbase/从 InputBase 派生源代码[1]InputBaseT 组件是各种 Blazor 输入控件所继承的抽象类。这个类在标准 HTML input 元素的基础上增加了额外的功能#xff0c;比如验证——我们… 原文链接https://blazor-university.com/forms/descending-from-inputbase/从 InputBase 派生源代码[1]InputBaseT 组件是各种 Blazor 输入控件所继承的抽象类。这个类在标准 HTML input 元素的基础上增加了额外的功能比如验证——我们稍后会介绍。因此如果我们打算将它们用作用户输入建议我们从这个基类中继承组件。实现 InputBaseT 仅需要实现一个抽象方法和一个可选的虚拟方法。InputBaseT 是一个泛型类它具有名为 Value 的 T 类型属性。由于 Web 浏览器使用字符串值因此该组件需要一种将 T 类型的值与字符串相互转换的方法。protected abstract bool TryParseValueFromString(string value, out T result, out string validationErrorMessage);TryParseValueFromString 是一个抽象方法为了将字符串值从 HTML input 元素或其他使用字符串的源转换为目标类型 T应重写该方法。如果无法转换则应设置 validationErrorMessage 为合适的消息以指示转换失败。这用于提供验证错误消息以及视觉无效状态以便用户知道设置值的尝试失败。protected virtual string FormatValueAsString(T value)FormatValueAsString 是与 TryParseValueFromString 相对的。如果简单的 Value.ToString() 不足以将 T 的值转换回浏览器 UI 层则应重写此方法以正确执行任务。创建 InputColor 组件首先我们需要创建一个 InputColor.razor 文件。在该文件中我们需要将 InputBaseColor 指定为基类并添加我们希望在 HTML 中呈现的标记。using System.Drawing using System.Text.RegularExpressions inherits InputBaseColorinput typecolor attributesAdditionalAttributes classCssClass bindCurrentValueAsString/为 Color 类添加了 System.Drawing并添加了 System.Text.RegularExpressions 用于将十六进制代码的输入解析为 Color 值。我们要做的第一件事是实现 FormatValueAsString。为此我们只需将 R、G 和 B 值格式化为 2 位十六进制值。protected override string FormatValueAsString(Color value) $#{value.R:x2}{value.G:x2}{value.B:x2};要将十六进制字符串转换回颜色我们首先需要将 2 个字符的十六进制值转换为字节。byte HexStringToByte(string hex) {const string HexChars  0123456789abcdef;hex  hex.ToLowerInvariant();int result  (HexChars.IndexOf(hex[0]) * 16)  HexChars.IndexOf(hex[1]);return (byte)result; }接下来我们需要实现 TryParseValueAsString。static Regex Regex  new Regex(^#([0-9a-f]{2}){3}$, RegexOptions.Compiled | RegexOptions.IgnoreCase);protected override bool TryParseValueFromString(string value, out Color result, out string validationErrorMessage) {Match match  Regex.Match(value);if (!match.Success){validationErrorMessage  Not a valid color code;result  Color.Red;return false;}byte r  HexStringToByte(match.Groups[1].Captures[0].Value);byte g  HexStringToByte(match.Groups[1].Captures[1].Value);byte b  HexStringToByte(match.Groups[1].Captures[2].Value);validationErrorMessage  null;result  Color.FromArgb(r, g, b);return true; }该代码使用正则表达式来确保该值是 6 个十六进制字符格式的字符串前面有一个 # 字符。它捕获三组 2 位十六进制字符并使用我们的 HexStringToByte 方法将它们转换为字节。最后使用这些 RGB 值创建颜色。我们应该给组件添加一个参数允许它的使用者指定一个自定义错误消息以便在传递的值无效时使用。添加 [Parameter] 属性。我们可以随意调用它但 ParsingErrorMessage 是 Blazor 中使用的标准名称。[Parameter] public string ParsingErrorMessage { get; set; }然后更改在 TryParseValueFromString 方法中设置 validationErrorMessage 的代码以使用该参数而不是硬编码的错误消息。if (!match.Success) {validationErrorMessage  ParsingErrorMessage;result  Color.Red;return false; }为了便于将颜色显示为文本让我们重构 FormatValueAsString 方法以使用静态方法这样我们就可以独立于 InputColor 的任何实例使用该静态方法。public static string ColorToString(Color value) $#{value.R:x2}{value.G:x2}{value.B:x2};protected override string FormatValueAsString(Color value) ColorToString(value);我们的整个组件现在应该如下所示using System.Drawing using System.Text.RegularExpressions inherits InputBaseColorinput typecolor attributesAdditionalAttributes classCssClass bindCurrentValueAsString/code {[Parameter] public string ParsingErrorMessage { get; set; }public static string ColorToString(Color value) $#{value.R:x2}{value.G:x2}{value.B:x2};protected override string FormatValueAsString(Color value) ColorToString(value);static Regex Regex  new Regex(^#([0-9a-f]{2}){3}$, RegexOptions.Compiled | RegexOptions.IgnoreCase);protected override bool TryParseValueFromString(string value, out Color result, out string validationErrorMessage){Match match  Regex.Match(value);if (!match.Success){validationErrorMessage  ParsingErrorMessage;result  Color.Red;return false;}byte r  HexStringToByte(match.Groups[1].Captures[0].Value);byte g  HexStringToByte(match.Groups[1].Captures[1].Value);byte b  HexStringToByte(match.Groups[1].Captures[2].Value);validationErrorMessage  null;result  Color.FromArgb(r, g, b);return true;}byte HexStringToByte(string hex){const string HexChars  0123456789abcdef;hex  hex.ToLowerInvariant();int result  (HexChars.IndexOf(hex[0]) * 16)  HexChars.IndexOf(hex[1]);return (byte)result;} }InputColor 示例我们将制作一个简单的页面让用户选择个人最喜欢的颜色。page / using System.DrawingEditForm ModelCurrentPersonInputColor bind-ValueCurrentPerson.FavoriteColor/ /EditFormFavorite colour is CurrentPerson.FavoriteColor div stylewidth:100px;height:100px;background-color:ColorAsHex/code {Person CurrentPerson  new Person{FavoriteColor  Color.Green};string ColorAsHex  InputColor.ColorToString(CurrentPerson.FavoriteColor);class Person{public Color FavoriteColor { get; set; }} }第 19-22 行创建一个我们的 EditForm 将绑定到的类。第 12-15 行创建此类的一个实例。第 17 行使用我们的静态 InputColor.ColorToString 将所选颜色转换为 Web 十六进制颜色字符串。第 9 行创建具有内联样式的 div 元素该元素将所选颜色显示为实心框。第 4 行创建 EditForm其模型绑定到我们页面的 Person。第 5 行使用我们的 InputColor 组件该组件将呈现一个带有 typecolor 的 HTML input 元素供用户交互。参考资料[1]源代码: https://github.com/mrpmorris/blazor-university/tree/master/src/Forms/InheritingFromInputBase
http://www.sadfv.cn/news/178137/

相关文章:

  • 苏州建行网站首页wordpress自定义导航
  • 东莞网站排名优化费用广告联盟app手机版
  • 烟台网站设计单位搜索引擎营销的原理
  • 台州网站建设制作北京装饰公司招聘信息
  • 网页设计相关的网站wordpress外贸主题免费下载
  • 什么样的网站流量容易做百度助手官网
  • 哪里有建设网站的广州vi设计公司
  • 微博白菜网站怎么做网店运营的工作内容
  • 网站建设费用包括wordpress酷炫特效
  • 校园网站建设简介2345浏览器网址入口
  • 上海专业网站建设服零基础学软件开发难吗
  • 做英语手抄报 什么网站高企达建设有限公司网站
  • 抚州北京网站建设wordpress表单附件上传
  • 免费网站建设设计制作公司湘潭网站
  • 怎样做网站的后台wordpress添加icon文件夹
  • 宁波甬晟园林建设有限公司网站网站样式下载
  • 昆山专业的网站建设黄南州网站建设公司
  • 做网站模板上海网站建设 公司案例
  • 南京太阳宫网站建设汽车网站建设可行性分析
  • 大数据比赛网站建设wordpress手机导航栏
  • 外贸网站建设 广州做电器哪个网站好
  • 网站建设维护实训总结网站建设 有限公司
  • 手机网站设计尺寸郑州seo全网营销
  • 网站开发有啥作用网站top排行榜
  • 建设网站 创建数据库自己的电脑做网站云存储
  • 简易网站模板网站开发前端和后端技术
  • 做一个网站首页多少钱低价网站建设方案
  • 鄂尔多斯做网站怎么把网站上传到空间
  • 阿里云备案 网站备案域名中国网站访问量排行
  • 怎么开通网站和进行网页设计模具设计三大软件