NopCommerce 增加 Customer Field
预期效果:
Customer表新增一个Column
该新增字段可以在Admin段 新增 修改 列表查询及显示
示例步骤:
0.数据库表修改
alter table [Customer] add MemberType nvarchar(2) ;
1.Entity处理
Libraries\Nop.Core\Domain\Customers\Customer.cs
仿照 Username 新增
/// <summary>
/// Gets or sets the Member Type
/// </summary>
public string MemberType { get; set; }
2.EntityMap处理
Libraries\Nop.Data\Mapping\Customers\CustomerMap.cs
新增
this.Property(u => u.MemberType).HasMaxLength(2);
3.EntityModel处理
Presentation\Nop.Web\Administration\Models\Customers\CustomerModel.cs
仿照 GenderEnabled 及 Gender 新增
//可以不增加MemberTypeEnabled
//如需该设置的控制 可 NopCommerce 增加 Customer Settings
public bool MemberTypeEnabled { get; set; }
[NopResourceDisplayName("Admin.Customers.Customers.Fields.MemberType")]
[AllowHtml]
public string MemberType { get; set; }
4.增修页面
Presentation\Nop.Web\Administration\Views\Customer\_CreateOrUpdate.cshtml
仿照 @if (Model.CompanyEnabled) 新增
@if (Model.MemberTypeEnabled)
{
<div class="form-group">
<div class="col-md-3">
@Html.NopLabelFor(model => model.MemberType)
</div>
<div class="col-md-9">
@Html.NopEditorFor(model => model.MemberType)
@Html.ValidationMessageFor(model => model.MemberType)
</div>
</div>
}
5.新增操作
Presentation\Nop.Web\Administration\Controllers\CustomerController.cs
进入页面时 Model准备
修改 protected virtual void PrepareCustomerModel 的Action
新增 model.MemberTypeEnabled = _customerSettings.MemberTypeEnabled;
新增操作保存时 Post处理
修改 public ActionResult Create(CustomerModel model, bool continueEditing, FormCollection form)
的 var customer = new Customer
新增 MemberType = model.MemberType,
6.修改操作
Presentation\Nop.Web\Administration\Controllers\CustomerController.cs
进入页面时 Model准备
修改 protected virtual void PrepareCustomerModel 的Action
if (customer != null) 分支下
新增 model.MemberType = customer.MemberType;
修改操作保存时 Post处理
修改 public ActionResult Edit(CustomerModel model, bool continueEditing, FormCollection form)
仿照 username 新增
//MemberType
if (_customerSettings.MemberTypeEnabled )
{
customer.MemberType = model.MemberType;
}
7.列表页面 列表显示
Presentation\Nop.Web\Administration\Models\Customers\CustomerListModel.cs
仿照 ZipPostalCodeEnabled 新增
public bool MemberTypeEnabled { get; set; }
列表显示
Presentation\Nop.Web\Administration\Views\Customer\List.cshtml
$("#customers-grid").kendoGrid
仿照 @if (Model.CompanyEnabled) 新增
@if (Model.MemberTypeEnabled)
{
<text>{
field: "MemberType",
title: "@T("Admin.Customers.Customers.Fields.MemberType")",
width: 200
},</text>
}
其 $("#customers-grid").kendoGrid 的 url: "@Html.Raw(Url.Action("CustomerList", "Customer"))",
Presentation\Nop.Web\Administration\Controllers\CustomerController.cs
对应的 protected virtual CustomerModel PrepareCustomerModelForList(Customer customer)
return new CustomerModel 增加 MemberType = customer.MemberType,
8.列表页面 新增查询条件
1).Model处理
Presentation\Nop.Web\Administration\Models\Customers\CustomerListModel.cs
仿照 SearchZipPostalCode 新增
[NopResourceDisplayName("Admin.Customers.Customers.List.SearchMemberType")]
[AllowHtml]
public string SearchMemberType { get; set; }
2).Service处理
Libraries\Nop.Services\Customers\ICustomerService.cs
IPagedList<Customer> GetAllCustomers
增加查询参数 string memberType=null,
Libraries\Nop.Services\Customers\CustomerService.cs
public virtual IPagedList<Customer> GetAllCustomers
增加查询参数 string memberType=null,
及仿照 username 增加其Linq过滤
if (!String.IsNullOrWhiteSpace(memberType))
query = query.Where(c => c.MemberType.Contains(memberType));
3).Controller Action 处理
Presentation\Nop.Web\Administration\Controllers\CustomerController.cs
public ActionResult CustomerList(
var customers = _customerService.GetAllCustomers( 中 新增
memberType:model.SearchMemberType,
4).页面处理
Presentation\Nop.Web\Administration\Views\Customer\List.cshtml
仿照 @if (Model.ZipPostalCodeEnabled) 新增
@if (Model.MemberTypeEnabled )
{
<div class="form-group">
<div class="col-md-4">
@Html.NopLabelFor(model => model.SearchMemberType)
</div>
<div class="col-md-8">
@Html.NopEditorFor(model => model.SearchMemberType)
</div>
</div>
}
js查找及新增SearchMemberType
$("".concat("#@Html.FieldIdFor(model => model.SearchEmail),",
"#@Html.FieldIdFor(model => model.SearchUsername),",
"#@Html.FieldIdFor(model => model.SearchMemberType),",
js查找及新增SearchMemberType
function additionalData() {
var data = {
SearchCustomerRoleIds: $('#@Html.FieldIdFor(model => model.SearchCustomerRoleIds)').val(),
SearchEmail: $('#@Html.FieldIdFor(model => model.SearchEmail)').val(),
SearchMemberType: $('#@Html.FieldIdFor(model => model.SearchMemberType)').val(),
9.增加文本资源
运行站点
Admin -> Configuration -> Languages -> Edit
-> String resources -> Add new record
Admin.Customers.Customers.Fields.MemberType
Admin.Customers.Customers.List.SearchMemberType
10.解决方案 Clean 和 Rebuild
运行站点 查看效果
NopCommerce 增加 Customer Field的更多相关文章
- NopCommerce 增加 Customer Settings
预期: 仿照Customer 的 Phone number enabled 和 required 增加MemberType 相关步骤如下: 1.运行站点 Admin -> Settings -& ...
- NopCommerce 增加 Customer Attributes
预期: Customer 新增一个自定义属性 运行站点 1.Admin -> Settings -> Customer settings -> Customer form field ...
- 如何为Rails作贡献:例增加rich_text field generators
如何为Rails作贡献 例增加rich_text field generators 下载https://github.com/rails/rails 打开atom,在 rails/railties/l ...
- [转]教你一招 - 如何给nopcommerce增加新闻类别模块
本文转自:http://www.nopchina.net/post/nopchina-teach-newscategory.html nopcommerce的新闻模块一直都没有新闻类别,但是很多情况下 ...
- [转]教你一招 - 如何给nopcommerce增加一个类似admin的area
本文转自:http://www.cnblogs.com/wucf2004/p/nopcommerce-area.html asp.net mvc里面的area是什么,点击这里查看 如果在nopcomm ...
- NopCommerce 关于Customer的会员类别及会员价处理 的尝试途径
示例效果: 当Customer是某个会员级别或内部员工时, 购物结算时享受一定的折扣: 相关设定如下: Step1.新增会员类别 Admin - Customers - Customer rol ...
- 教你一招 - 如何给nopcommerce增加一个类似admin的area
asp.net mvc里面的area是什么,点击这里查看 如果在nopcommerce里面加入类似admin的area,步骤如下: 1.新建一个mvc空项目MvcApplication1,位置放在\N ...
- openerp 经典收藏 Openerp开发进销存系统完毕总结(转载)
原文地址:http://blog.csdn.net/heartrude/article/details/9142463 Openerp开发进销存系统完毕总结 分类: 代码历程 OpenERP 工程思想 ...
- mysql中的sql
变量 用户变量: 在用户变量前加@ 系统变量: 在系统变量前加@@ 运算符 算术运算符有: +(加), -(减), * (乘), / (除) 和% (求模) 五中运算 位运算符有: & (位于 ...
随机推荐
- .NET多线程总结和实例介绍
摘要:.Net提供了许多多线程编程工具,可能是因为太多了,所以掌握起来总是有一些头疼,我在这里讲讲我总结的一些多线程编程的经验,希望对大家有帮助. 1.多线程的总结 不需要传递参数,也不需要返回参数 ...
- PetaPoco4.0的事务为什么不会回滚
using (var srop=DbHelper.CurrentDb.GetTransaction()) { ID = bp.AddModel(model).ToStr(); #region 参与楼盘 ...
- 基于CkEditor实现.net在线开发之路(4)快速布局,工具箱,模板载入,tab选项卡简单说明与使用
上一章给常用的from表单控件属性页面,进行了简单说明和介绍,但是由于是在网页中做界面设计,操作肯定没有桌面应用程序方便,便捷,为了更方便的布局与设计,今天我主要说一下快速布局,工具箱,tab选项卡, ...
- 基于.net mvc 的供应链管理系统(YB-SCM)开发随笔1-开篇
作为开篇之作,先把这个项目的介绍和一些技术点给各位. 1.项目所用到的技术 (1)前台展示:ASP.NET MVC 3.0+Jquery+Sea+Bootstrap等 (2)开发环境:VS2012/V ...
- Java动态代理全面分析
代理模式 解说:给某一个对象提供一个代理,并由代理对象控制对原对象的引用: 代理模式需要以下几个角色: 1 主题:规定代理类和真实对象共同对外暴露的接口: 2 代理类:专门代理真实对象的类: 3 ...
- JAVA 入门第一章(语法基础)
本人初学java 博客分享记录一下自己的学习历程 java我的初步学习分为六章,有c和c++的基础学起来也简便了很多. 第一章 语法基础 第二章 面向对象 第三章 常用工具类 第四章 文件操纵 第五章 ...
- 001.Getting Started -- 【入门指南】
Getting Started 入门指南 662 of 756 people found this helpful Meng.Net 自译 1. Install .NET Core 到官网安装 .NE ...
- 原生JS:JSON对象详解
JSON对象 支持到IE8,旧版的IE需要Polyfill 本文参考MDN做的详细整理,方便大家参考[MDN](https://developer.mozilla.org/zh-CN/docs/Web ...
- SAP Fiori和UI5的初学者导航
你是UI5和Fiori的新手?来对地方了. 对我来说,今年是不得不“跟上时代”去提升自己ABAP世界以外的技术技能的困难的一年.幸运的是,有很多可免费获得的信息和课程可以帮你实现这个跳跃.不要等着别人 ...
- SharePoint 2013 安装中间出错了怎么办? 每一次安装都是一段曲折的路【1603(0x643) 】
今天安装SharePoint 2013又出现了如下的错误,所有的必备软件都已经安装成功的情况下: 如何解决这样的问题呢? 1.首先把安装的日志文件找出来:位于 C:\用户\您的用户名\AppData\ ...