使用弹出式页面选择主键实体实例

0 步骤介绍

1 在子实体的viewmodel中增加,母实体的listvm对象(弹出选择的数据来源)
2 在子实体的vm的init中初始化
3 在子实体的create和edit中,使用selector控件完成页面改造

1 数据库实体

1.1专业实体 Major

/// <summary>
/// 数据实体类:Major Major
/// </summary>
/// <remarks>
/// 专业信息
/// </remarks>
public class Major : TopBasePoco
{
    /// <summary>
    /// MajorID Major ID
    /// </summary>
    /// <remarks>
    /// 专业编号:
    /// </remarks>
    [Display(Name = "Major ID")]        
    [Required( ErrorMessage = "{0}是必填项")]
    [StringLength(maximumLength: 50, ErrorMessage ="{0}最大长度不能超过{1}")]        
    [Key]
    [Column("MajorID")]
    public new string ID { get; set; }

    /// <summary>
    /// MajorName Major Name
    /// </summary>
    /// <remarks>
    /// 专业名称:
    /// </remarks>
    [Display(Name = "Major Name")]
    [Required(ErrorMessage = "{0}是必填项")]
    [StringLength(maximumLength: 50, ErrorMessage = "{0}最大长度不能超过{1}")]
    [Column("MajorName")]
    public string MajorName { get; set; }

}

学生实体

/// <summary>
/// 数据实体类:Student Student
/// </summary>
/// <remarks>
/// 学生信息
/// </remarks>
public class Student : TopBasePoco
{
    /// <summary>
    /// PackingID Packing ID
    /// </summary>
    /// <remarks>
    /// 装箱信息编号:
    /// </remarks>
    [Display(Name = "Student ID")]
    [Required(ErrorMessage = "{0}是必填项")]
    [StringLength(maximumLength: 50, ErrorMessage = "{0}最大长度不能超过{1}")]
    [Key]
    [Column("StudentID")]
    public new string ID { get; set; }

    
    [Display(Name = "Student Name")]
    [StringLength(maximumLength: 50, ErrorMessage = "{0}最大长度不能超过{1}")]
    [AllowNull]
    public string StudentName { get; set; }


    /// <summary>
    /// MajorID Major ID
    /// </summary>
    /// <remarks>
    /// 专业编号:
    /// </remarks>
    [Display(Name = "Major ID")]
    [Required(ErrorMessage = "{0}是必填项")]
    [StringLength(maximumLength: 50, ErrorMessage = "{0}最大长度不能超过{1}")]
    [Column("MajorID")]
    public new string MajorID { get; set; }

    [Display(Name = "Major ID")]
    public Major Major{ get; set; }

}

2 修改StudentVM

	//第一步:增加专业listVM对象
    public MajorListVM majors { get; set; }
    
    protected override void InitVM()
    {
    	//第二部完成该对象的初始化
        majors = new MajorListVM();
        majors.CopyContext(this);
    }

3 修改student的create view文件

@model Study.ViewModel.BaseData.StudentVMs.StudentVM
@inject IStringLocalizer<Program> Localizer;

<wt:form vm="@Model">
    <wt:row items-per-row="ItemsPerRowEnum.Two">
        <wt:textbox field="Entity.ID" />
        <wt:textbox field="Entity.StudentName" />
        @*<wt:combobox field="Entity.MajorID" items="AllMajors"/>*@
        <wt:selector list-vm="majors" field="Entity.MajorID" text-bind="majors.EntityList[0].MajorName">
            <wt:searchpanel vm="majors">
                <wt:row items-per-row="ItemsPerRowEnum.Two">
                    @*<wt:textbox field="majors.Searcher.ID" />*@
                    <wt:textbox field="majors.Searcher.MajorName" />
                </wt:row>
            </wt:searchpanel>
        </wt:selector>
    </wt:row>
    <wt:row align="AlignEnum.Right">
        <wt:submitbutton />
        <wt:closebutton />
    </wt:row>
</wt:form>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值