FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

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

搜索
查看: 4532|回复: 3

【已确认】ValidateForms验证对GroupPanel的form验证好像有问题

[复制链接]
发表于 2017-7-17 21:43:58 | 显示全部楼层 |阅读模式
ValidateForms验证对含FormRow及GroupPanel的form验证好像有问题,点击按钮没反应,没有去执行控制器的代码,是不是我View里的代码有问题?
以下是我的View代码:
@{
    ViewBag.Title = "ProductNew";
    var F = @Html.F();
}
@model FutureMvc.Models.Product
@section body {
    @(F.Panel()
        .ID("Panel1")
        .ShowBorder(false)
        .ShowHeader(false)
        .AutoScroll(true)
        .IsViewPort(true)
        .Layout(LayoutType.VBox)
        .Toolbars(
            F.Toolbar()
                .ID("Toolbar1")
                .Items(
                    F.Button()
                        .ID("btnClose")
                        .Icon(Icon.SystemClose)                        
                        .Text("关闭")                        
                        .Listener("click", "F.activeWindow.hide();"),
                    F.ToolbarSeparator(),
                    F.Button()
                        .ID("btnSaveClose1")
                        .ValidateForms("SimpleForm1")
                        .Icon(Icon.SystemSaveClose)
                        .Text("保存后关闭")
                        .OnClick(Url.Action("ProductNew_btnSaveClose_Click"), "SimpleForm1")                       
                )
        )
        .Items(
            F.Form()
                .ID("SimpleForm1")
                .ShowBorder(false)
                .ShowHeader(false)
                .BodyPadding(10)
                .Items(
                    F.FormRow()
                        .Items(
                                F.TextBoxFor(m => m.ProdNo).Required(true).RequiredMessage("产品编号不能为空!"),
                                F.TextBoxFor(m => m.Name).Required(true).RequiredMessage("产品名称不能为空!")
                                ),
                    F.FormRow()
                        .Items(
                            F.DropDownListFor(m => m.CategoryId)
                                .ID("ProdCategoryId")
                                .EnableSimulateTree(true)
                                .DataTextField("Name")
                                .DataValueField("ID")
                                .Label("产品类别")
                                .DataSimulateTreeLevelField("TreeLevel")
                                .DataEnableSelectField("Enabled")
                                .Required(true)
                                .ShowRedStar(true)
                                .DataSource(ViewBag.ProductCategoryDataSource),
                            F.DropDownListFor(m => m.TechCategory)
                                .DataTextField("TechCategory")
                                .DataValueField("TechCategory")
                                .DataSource(ViewBag.TechCategorySource)
                            ),
                    F.GroupPanel()
                        .ID("GroupPanel1")
                        .Layout(LayoutType.Anchor)
                        .Title("产品规格")
                        .Items(
                        F.Panel()
                            .ID("Panel2")
                            .Layout(LayoutType.HBox)
                            .BoxConfigAlign(BoxLayoutAlign.Stretch)
                            .ShowHeader(false)
                            .ShowBorder(false)
                            .Items(
                                F.TextBoxFor(m => m.length).Width(250).LabelAlign(LabelAlign.Right),
                                F.TextBoxFor(m => m.width).Width(250).LabelAlign(LabelAlign.Right),
                                F.TextBoxFor(m => m.height).Width(250).LabelAlign(LabelAlign.Right)
                                )
                        ),
                    F.GroupPanel()
                        .ID("GroupPanel2")
                        .Layout(LayoutType.Anchor)
                        .Title("技术参数")
                        .Items(
                        F.Panel()
                            .ID("Panel3")
                            .Layout(LayoutType.HBox)
                            .BoxConfigAlign(BoxLayoutAlign.Stretch)
                            .ShowHeader(false)
                            .ShowBorder(false)
                            .Items(
                                F.TextBoxFor(m => m.Reserver1).Label("压制比例").Width(250),
                                F.TextBoxFor(m => m.Reserver2).Label("抛光比例").Width(250),
                                F.TextBoxFor(m => m.Reserver3).Label("负荷").Width(250)
                                )
                        ),
                    F.FormRow()
                        .MarginTop(5)
                        .Items(
                        F.DropDownListFor(m => m.Unit)
                        .DataTextField("Unit")
                        .DataTextField("Unit")
                        .DataSource(ViewBag.UnitSource),
                        F.TextBoxFor(m => m.StandPrice),
                        F.TextBoxFor(m => m.SquarePrice)
                        ),
                    F.FormRow()
                        .Items(
                            F.TwinTriggerBox()
                                .ID("tbSelectedClient")
                                .EnableEdit(false)
                                .Trigger1Icon(TriggerIcon.Clear)
                                .Trigger2Icon(TriggerIcon.Search)
                                .ShowTrigger1(false)
                                .ShowTrigger2(true)
                                .OnClientTrigger1Click("onSelectedClientTrigger1Click();")
                                .OnClientTrigger2Click("onSelectedClientTrigger2Click();")
                                .Label("初次客户")
                                .Text(""),
                            F.HiddenField()
                                .ID("hfSelectedClient")
                                .Text(""),
                            F.DatePickerFor(m=>m.QuoteDate).Width(150)
                        ),
                    F.FormRow()
                        .Items(
                        F.CheckBoxFor(m => m.Disabled).LabelAlign(LabelAlign.Right),
                        F.DatePickerFor(m => m.DisabledDate).Width(150)
                        ),
                    F.FormRow()
                        .Items(
                        F.TextAreaFor(m => m.Remark)
                        )
                )
        )
    )
    @(F.Window()
        .ID("Window1")
        .Title("编辑")
        .Hidden(true)
        .EnableIFrame(true)
        .EnableMaximize(true)
        .EnableResize(true)
        .Target(Target.Top)
        .IsModal(true)
        .Width(550)
        .Height(350)
    )
}


@section script {
    <script>

        /////////////////////////////////////////////////////
        function checkSelectedClientTriggerStatus() {
            if (F.ui.tbSelectedClient.getValue()) {
                F.ui.tbSelectedClient.showTrigger1();
            } else {
                F.ui.tbSelectedClient.hideTrigger1();
            }
        }
        function onSelectedClientTrigger1Click() {
            F.ui.tbSelectedClient.setValue('');
            F.ui.hfSelectedClient.setValue('');
            checkSelectedClientTriggerStatus();
        }
        function onSelectedClientTrigger2Click() {
            
            F.ui.Window1.show(F.baseUrl + 'Client/SelectClient?ids=' + F.ui.hfSelectedClient.getValue(), '选择客户');
        }

        function updateSelectedClient(ClientName, ClientId)
        {
            F.ui.tbSelectedClient.setValue(ClientName);
            F.ui.hfSelectedClient.setValue(ClientId);
            checkSelectedClientTriggerStatus();
        }
        /////////////////////////////////////////////////////
        /////////////////////////////////////////////////////
        F.ready(function () {
            checkSelectedClientTriggerStatus();
            F.ui.ProdCategoryId.setValue(@ViewBag.CategoryId);
        });
    </script>
}
 楼主| 发表于 2017-7-17 22:19:44 | 显示全部楼层
测试发现只要有GroupPanel,BtnSaveClose1的ValidateForms("SimpleForm1")就不能通过验证
 楼主| 发表于 2017-7-18 09:02:29 | 显示全部楼层
找到原因了,是不是 F.TextBoxFor(m => m.length).Width(250).LabelAlign(LabelAlign.Right)中的length是保留字啊,模型不能使用length字段啊?去掉这一行就可以了
发表于 2017-7-18 10:32:30 | 显示全部楼层
quanhz 发表于 2017-7-18 09:02
找到原因了,是不是 F.TextBoxFor(m => m.length).Width(250).LabelAlign(LabelAlign.Right)中的length是保 ...

是的。我前两天刚写了一篇文章,介绍这个事情:http://www.cnblogs.com/sanshi/p/7159885.html

好消息时,下个版本会做兼容处理,即使将 name, length 作为DOM的id也不会报错。但是最好不要做,name/length这些太特殊了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-3-28 19:57 , Processed in 0.045596 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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