DNN中的列表管理可以实现对DNN中可变项列表的管理。可变列表包括:可选择的货币种类、可选择的国家省份等。这些列表项一般都以下拉框的形式出现。在DNN中程序默认给出了一些,我们可以修改系统默认给出的值,也可添加新的列表(主要用于自己开发的用户模块)。
就拿国家省份列表来说:默认给出的省份都是英文,我们当然可以把它汉化成中文。中国的省份也没有默认给出,大家可安装以下步骤添加:
1、点击“增加列表”,出现如下图所示界面。(输入的值也按下图所示给出,如果要启用自定义排序,那么一定要把“排序方式”项选中)
2、保存上一步操作后,点击“增加条目”依次添加省份条目,界面如下:
3、如果你在添加列表时选中了“排序方式”项,则可以调整列表条目的顺序,界面如下:
4、添加完条目后就可以在注册页面看看效果了,如下图:
5、注册时国家默认的United States,要想让它默认China,只有修改程序才行
在controls\Address.ascx文件中有以下代码:
<wc:CountryListBox TestIP="" LocalhostCountryCode="US" id="cboCountry" CssClass="NormalTextBox" Width="200px" DataValueField="Value" DataTextField="Text" AutoPostBack="True" runat="server"></wc:CountryListBox>修改LocalhostCountryCode="US"为LocalhostCountryCode="CN"即可。
6、网上有人对“台湾”作为一个国家出现感到不爽,可以自己将它从国家列表中删除并添加到中国省份列表中即可。
列出一些我在看程序的记录的东西,希望能对大家看这部分程序时有用。
数据库中的表(Lists): 字段名
类型
含义
备注
EntryID
Int
列表明细ID
ListName
Nvarchar(50)
列表名称
组合主键(ListName、Value、Text、ParentID)
[Value]
Nvarchar(100)
列表值
Text
Nvarchar(150)
列表文本
ParentID
Int
父ID
表示隶属于那一个条目
[Level]
Int
层次
SortOrder
Int
列表排序号
DefinitionID
Int
列表定义
用于区分是系统默认列表还是客户新建的列表(-1:系统默认的/0:用户创建的),系统默认的列表是不能删除
Description
Nvarchar(500)
描述
当前版本还没用到
ListInfo和ListEntryInfo:虽说列表管理只有一个表,但它却对应了两个业务实体。
ListInfo:列表信息类,相当于一个列表种类,如Country。
ListEntryInfo:列表明细条目信息类,就是列表中的一个条目,如Country列表中的China就是一个条目
从上面给出的数据表结构中就可见看出,这设计可以灵活的添加子列表。如果设计一个ListInfo表和一个ListEntryInfo表当然也是可以的,那么程序实现起来就复杂一些。
几个容易混淆的东西:
DisplayName:显示在列表节点的名称([父列表名称.父列表文本]:列表名称)
Key:列表信息Key([父列表名称.父列表值]:列表名称,[]表示如果没父类就没有该项,[父列表名称.父列表值]就是ParentKey)
ParentKey:父列表Key([父列表名称.父列表值])
Parent:父列表名称([父列表名称.父列表文本])
ParentList:父列表([父列表名称])