gpt4 book ai didi

asp.net-mvc-4 - Razor 的三态复选框

转载 作者:行者123 更新时间:2023-12-04 04:49:51 25 4
gpt4 key购买 nike

我需要一个复选框来返回可为空的 bool 值。我该怎么办?
Razer 引擎有三态复选框吗?
我找到了 this问题,但链接无效。

最佳答案

您可以创建一个 TriState类,自定义 ModelBinder对于此类,以及相应的显示/编辑模板。
TriState类应该有一个属性来存储当前状态的表示,不管如何:例如使用 enum ,带有 int可以是 -1、0 或 1,或者带有可为空的 bool 值 bool?
显示模板应该只显示状态。即它可以为各州显示不同的图像,也许还可以显示相关的“标签”。

编辑模板应显示状态并具有允许在单击时旋转 3 个状态的脚本。

例如,编辑/显示模板可以实现为带有文本的跨度,该文本将用作状态的标签,并且可以具有不同的 CSS 样式以将图像显示为跨度的背景图像。这将使更改服务器和客户端脚本中的图像变得容易。

对于编辑模板,跨度还应具有:

  • 以自定义 ModelBinder 的方式存储值的隐藏字段可以恢复(即格式化为字符串以存储值,并解析字符串以恢复它)
  • 处理跨度的点击事件并更改状态的脚本,即更新隐藏字段中的值,以及显示相应背景图像的样式。

  • 所以你需要:
  • TriState类(class)
  • 定制 ModelBinderTriState类。 Look here , or here .
  • 用于显示/编辑的模板。阅读此博客:Brad Wilson: ASP.NET MVC 2 Templates
  • 显示不同图像的样式(定义背景图像和填充,以便文本不会覆盖图像)。此外,样式可以更改可点击版本(编辑器模板)中的光标,并可能更改悬停时的显示,以提示用户该元素是可点击的。
  • 用于更改状态的客户端脚本(仅适用于编辑器模板)。对于这个脚本,我建议添加一个“data-”属性并不显眼地附加它。见 my answer to this question .

  • 您可以通过在类中实现三个附加属性来存储标签以显示三种状态来改进这一点。该值可以作为额外的“数据-”属性添加到跨度中,以便客户端脚本可以根据当前状态更改标签。

    关于asp.net-mvc-4 - Razor 的三态复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17596636/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com