FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 4058|回复: 2
打印 上一主题 下一主题

下拉列表的MaxLength属性是对显示文本的验证(而非值)

[复制链接]
跳转到指定楼层
楼主
发表于 2017-3-6 21:01:52 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
我在新增数据的窗口中有一个下拉列表项,用来提交用户性别
页面代码是这样的:
F.DropDownListFor(m => m.Gender)
                    .DataTextField("Name")
                    .DataValueField("Code")
                    .SelectedValue("")
                    .DataSource(ViewBag.P_Gender)

P_Gender是保存性别代码的数据表,其类定义为:
public class P_Gender
    {
        [Key]
        [Display(Name = "代码")]
        [StringLength(1)]
        public string Code { get; set; }

        [Display(Name = "名称")]
        [StringLength(40)]
        public string Name { get; set; }
    }


后台提供了ViewBag.P_Gender的数据,页面初始化后,下拉列表显示正常。在提交数据时,在下拉列表中选中一项,如:“男”或“女”,然后保存,也一切正常,看了一下数据库,保存到表中的其实是代码 “0” 或 “1”,目前看起来一切符合要求。

问题是:如果下拉列表中“Name”字段宽度超过了“Code”字段的宽度,比如我将性别的“Name”字段中的“男”和“女”分别改为为“男人”和“女人”,“Code”字段内容仍然是“0” 和 “1”,这时在保存时将会提示“性别”宽度大于1,无法正常提交。
按理说既然提交到数据库的内容是“0”或“1”,和下拉列表中Text项的宽度应该是无关的,只要限制提交的Value项宽度就可以了, 这个地方显然同时限制了Text项的宽度。
谢谢!

沙发
 楼主| 发表于 2017-3-6 23:38:57 | 显示全部楼层
哦,原来如此,好在有解决的办法,多谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-5-23 15:52 , Processed in 0.043007 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表