05.NopCommerce给Topic表添加排序及类别字段
在用到Nopcommerce中静态页面表时,发现Topic表没有排序字段和类别字段,导致如果Page文件很多的话,无法区分是哪个类别,为此我稍微扩展了一下字段,在此记录一下操作流程,方便以后自己查看,同时也分享给我们的朋友!

0.在数据库中添加DisplayOrder,CategoryName字段

注意DisplayOrder为整形,CategoryName为字符串类型,别外加好后,记得把数据库DispalyOrder的值默认设置一个值,比如0。
1.给Domain的Entity实体加上两个字段DisplayOrder,CategoryName

我们在Nop.Core项目下,找到Domain文件夹,再找到Topics文件下的Topic.cs文件,加入以下新增字段代码
//===========================================================================
// 新增字段
//===========================================================================
/// <summary>
/// 显示顺序
/// </summary>
public int DisplayOrder { get; set; } /// <summary>
/// 类别名称
/// </summary>
public string CategoryName { get; set; }
//===========================================================================
2.管理后台TopicModel实体加上两个字段DisplayOrder,CategoryName

我们在Nop.Admin项目下,找到Model文件夹,再找到Topics文件下的TopicModel.cs文件,加入以下新增字段代码
//===========================================================================
// 新增字段
//===========================================================================
[NopResourceDisplayName("Admin.ContentManagement.Topics.Fields.DisplayOrder")]
public int DisplayOrder { get; set; } [NopResourceDisplayName("Admin.ContentManagement.Topics.Fields.CategoryName")]
public string CategoryName { get; set; }
//===========================================================================
3.在资源库中加入DisplayOrder与CategoryName的显示名称
打开网站后台

选择"View string resources"

查找一下,Admin.ContentManagement.Topics.Fields.DisplayOrder 与Admin.ContentManagement.Topics.Fields.CategoryName 的值是否存在,不存在则添加.
Resource name:Admin.ContentManagement.Topics.Fields.DisplayOrder value:排序
Resource name:Admin.ContentManagement.Topics.Fields.CategoryName value:类别名称

4.修改后台管理View
4.1修改添加与修改View
打开“Nop.Admin”项目 -> 打开Views文件夹 –> “Topic” –> “_CreateOrUpdate.cshtml”


加入以下代码
<tr>
<td class="adminTitle">
@Html.NopLabelFor(model => model.CategoryName):
</td>
<td class="adminData">
@Html.EditorFor(model => model.CategoryName)
@Html.ValidationMessageFor(model => model.CategoryName)
</td>
</tr>
<tr>
<td class="adminTitle">
@Html.NopLabelFor(model => model.DisplayOrder):
</td>
<td class="adminData">
@Html.EditorFor(model => model.DisplayOrder)
@Html.ValidationMessageFor(model => model.DisplayOrder)
</td>
</tr>
4.2修改列表View
打开“Nop.Admin”项目 -> 打开Views文件夹 –> “Topic” –> “list.cshtml”


具体代码如下(Nopcommerce3.2版本下的,3.3可能有所不同):
<table class="adminContent">
<tr>
<td>
@(Html.Telerik().Grid<TopicModel>()
.Name("topics-grid")
.Columns(columns =>
{
columns.Bound(x => x.SystemName);
columns.Bound(x => x.Title);
columns.Bound(x => x.CategoryName);
columns.Bound(x => x.DisplayOrder);
columns.Bound(x => x.IsPasswordProtected)
.Template(
@<img alt="" src="@Url.Content("~/Administration/Content/images/active-" + item.IsPasswordProtected.ToString().ToLowerInvariant() + ".gif")" />
)
.ClientTemplate("<img alt='' src='" + Url.Content("~/Administration/Content/images/") + "active-<#= IsPasswordProtected #>.gif' />")
.Centered()
.Width(100);
columns.Bound(x => x.IncludeInSitemap)
.Template(
@<img alt="" src="@Url.Content("~/Administration/Content/images/active-" + item.IncludeInSitemap.ToString().ToLowerInvariant() + ".gif")" />
)
.ClientTemplate("<img alt='' src='" + Url.Content("~/Administration/Content/images/") + "active-<#= IncludeInSitemap #>.gif' />")
.Centered()
.Width(100);
columns.Bound(x => x.Id)
.Width(50)
.Centered()
.Template(x => Html.ActionLink(T("Admin.Common.Edit").Text, "Edit", new { id = x.Id }))
.ClientTemplate("<a href=\"Edit/<#= Id #>\">" + T("Admin.Common.Edit").Text + "</a>")
.Title(T("Admin.Common.Edit").Text);
})
.DataBinding(dataBinding => dataBinding.Ajax().Select("List", "Topic"))
.ClientEvents(events => events.OnDataBinding("onDataBinding"))
.EnableCustomBinding(true))
</td>
</tr>
</table>
5.修改Topic的List的排序,按DisplayOrder的升序来排

6.预览一下效果
列表界面

添加修改界面

7.小结
对Nop这么强大的系统,难免会有一些需求没有考虑太全!没事,我会把我修改的分享给大家,下班了,明天go on!
05.NopCommerce给Topic表添加排序及类别字段的更多相关文章
- ABAP 动态内表添加单元格颜色字段
*动态内表alv显示时要求某些单元格显示颜色 *wa_fldcat-datatype不能添加LVC_T_SCOL类型,在创建好内表之后,再添加颜色列. DATA: wa_fldcat TYPE lvc ...
- Oracle数据库建表+添加数据练习
SQL脚本: --建表 --student表+注释 create table student( sno ) not null, sname ) not null, ssex ) not null, s ...
- Java线性表的排序
Java线性表的排序 ——@梁WP 前言:刚才在弄JDBC的时候,忽然觉得order-by用太多了没新鲜感,我的第六感告诉我java有对线性表排序的封装,然后在eclipse里随便按了一下“.” ,哈 ...
- 在高并发、高负载的情况下,如何给表添加字段并设置DEFAULT值?
在高并发.高负载的情况下,如何给表添加字段并设置DEFAULT值? 在Oracle 12c之前,当Oracle表数据量上亿时,对表执行“ALTER TABLE XXX ADD COLUMN_XX VA ...
- Yii CGridView 关联表搜索排序实例
在这篇文章中,我准备讲解如何在CGridView中搜索或者排序关联表中的某一行,通过给Yii Blog demo添加一个list页面. 首先,检查你的blog demo里的protected\mode ...
- oracle一次给多表添加相同字段
遇到一个需求:在已经建好的数据库中,为每一个数据表都添加相同的3个字段. 分析:数据库中的数据表较多,一一手动修改耗时低效,是否可以用程序遍历每一张表,然后为遍历到的当前表添加字段? 查询当前用户的所 ...
- SQL语句分组排序,多表关联排序
SQL语句分组排序,多表关联排序总结几种常见的方法: 案例一: 在查询结果中按人数降序排列,若人数相同,则按课程号升序排列? 分析:单个表内的多个字段排序,一般可以直接用逗号分割实现. select ...
- 数据库中老师学生家长表添加自动同意好友自动(AgreeAddingFriend ),默认为True
数据库中老师学生家长表添加自动同意好友自动(AgreeAddingFriend ),默认为True alter table Sys_User add AgreeAddingFriend bit alt ...
- 5-06使用Sql 语句为表添加约束
约束名的命名规则推荐采用:约束类型_约束列. 为用户表添加约束 ALTER TABLE UserInfo ADD CONSTRALNT PK_UserId PRIMATY REY(UserId) CO ...
随机推荐
- Java客户端:调用EyeKey HTTP接口进行人脸对比
package com.example.buyishi; import java.io.BufferedReader; import java.io.IOException; import java. ...
- 织梦dedecms中修改标题与简略标题长度的方法
本文介绍了dedecms中修改标题与简略标题长度的方法,进入dedecms后台,系统——系统基本参数——其他选项——文档标题最大长度——在这修改为200或更大. 一.修改标题 进入dedecms后台, ...
- hdu 1963 Investment 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1963 题目意思:有 本金 money,还有一些股票的种类,第 i 种股票买入需要 value[i] 这 ...
- 广大暑假训练1 E题 Paid Roads(poj 3411) 解题报告
题目链接:http://poj.org/problem?id=3411 题目意思:N个city 由 m 条路连接,对于一条路(假设连接Cityia和 Cityb),如果从Citya 去 Cityb的途 ...
- ajax验证用户名 当用户名框的数据改变时 执行ajax方法
ajax验证用户名 当用户名框的数据改变时 执行ajax方法 <html xmlns="http://www.w3.org/1999/xhtml" ><head ...
- 【selenium】常见问题
1鼠标变粗:setting→1.打开设置 点击 plugins 输入ideavim 把 这个勾去掉!这个是插件的配置问题. 2.editor->appearance 去掉 use bloc ...
- WebSocket使用教程 - 带完整实例--网址:https://my.oschina.net/u/1266171/blog/357488
什么是WebSocket?看过html5的同学都知道,WebSocket protocol 是HTML5一种新的协议.它是实现了浏览器与服务器全双工通信(full-duplex).HTML5定义了We ...
- SPOJ:One piece(不错的带权括号最大匹配问题)
One of DB and TN common interests is traveling. One day, they went to Grand Line and found One Piece ...
- Cocos2dx+lua合适还是Cocos2dx+js合适?
问题: 开发cocos2dx手游Cocos2dx+lua合适还是Cocos2dx+js合适 百牛信息技术bainiu.ltd整理发布于博客园 回答: 作者:廖宇雷链接:https://www.zhih ...
- JAVA线程同步 (三)信号量
一个信号量有且仅有3种操作,且它们全部是原子的:初始化.增加和减少 增加可以为一个进程解除阻塞: 减少可以让一个进程进入阻塞. 信号量维护一个许可集,若有必要,会在获得许可之前阻塞每一个线程: ...