pageadmin CMS网站建设教程:附属表数据列表调用语法

本文介绍pageadmin CMS中附属表数据列表的调用方法,包括列表调用语法及参数说明,并提供实例演示如何实现信息数据共享。

pageadmin CMS网站制作教程:附属表数据列表调用语法

列表调用语法

Html.SubDataList(参数1,参数2,参数3,参数4)
参数说明:

参数说明
类型
说明 是否可为null
参数1
object
预定义条件对象参数,包含固定属性 否
参数2 string
sql自定义条件

参数3
object
sql参数值

参数4
PageInfo
分页对象,如需要分页,必须设置此参数

注:第一个参数对象中必须定义Table或ParentTable/ParentField属性。

参数1常用属性:

属性
类型
说明
Table
string
要读取的附属表名,如不设置,必须设置ParentTable和ParentField

ParentTable string
父级表名称,必须和ParentField搭配使用
ParentField string 附属表的字段名称,必须和ParentField搭配使用
ParentId int
附属表对应的父级信息Id
ShowNumber int 默认为15,分页读取时此参数无效
OrderBy
string
数据排序方式,默认Id desc排序
Fields string
要读取的字段,不设置则由系统根据后台设置自动读取
Uid int 用户id

实例1:读取product_images附属表的前10条数据

@foreach (var item in Html.SubDataList(new{Table="product_images",ParentId=1,ShowNumber=10})) {
....字段读取
}
实例2:用分页方式读取product_images附属表的数据,每页显示10条数据。

@{
PageInfo pageInfo = new PageInfo()
{
PageSize = 10,
CurrentPage = (int)ViewBag.CurrentPage //获取当前页面页码,系统预设
};
}

@foreach (var item in Html.SubDataList(new { ParentTable="product",ParentField="images",ParentId=1,OrderBy = "thedate desc" }, null, null, pageInfo)) {
....字段读取
}

模板中如何实现信息数据共享
很多时候信息数据需要共享,一个最常用的应用场景就是手机版(独立手机,非响应式)本共享pc版本数据,下面以这个场景为例讲解。

假设手机版本对应信息栏目id为10,要调用pc栏目id等于1的信息数据,那么在手机模板中写如下代码就可以调取到pc数据。

  • @foreach(var item in Html.InfoDataList(new {ColumnId=1})) { string url = Html.InfoDataUrl((int)item.ColumnId,(int)item.Id);
  • @item.Title
  • }
但是这段代码有个问题,Html.InfoDataUrl得到的是信息所在的站点的内容页url地址,手机打开信息内容会跳转到pc站点去。

解决办法:用Html.InfoDataSharedUrl方法来调用,代码如下:

  • @foreach (var item in Html.InfoDataList(new { ColumnId = 1 })) { string url = Html.InfoDataSharedUrl(10,(int)item.Id);
  • @item.Title
  • }
注意Html.InfoDataSharedUrl第一个参数指定当前手机栏目id。

如果按上面写法,还是会存在两个问题:

1、如果手机版本不同栏目需要共享不同pc栏目的信息,ColumnId参数就要设置不同,就需要单独制作很多模板。

解决办法:栏目中添加一个下拉类型的自定义字段,关联pa_column表的name字段,可以直接在后台选择对应的pc栏目,然后模板中读取自定义字段后赋值给ColumnId参数,具体看页面后面的相关教程。

2、手机版本对应信息栏目id为10,也可能为11,12,如果手工指定具体指,每个栏目也需要建不同的模板。

解决办法:是用Html.CurrentColumnId()代替,这个方法获取当前信息栏目id。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值