# <stl:sqlContent> 数据库值
<stl:sqlContent
connectionStringName="数据库链接字符串名称"
connectionString="数据库链接字符串"
queryString="数据库查询语句"
type="显示的类型"
format="显示的格式"
wordNum="显示字符的数目"
startIndex="字符开始位置"
length="指定字符长度"
ellipsis="文字超出部分显示的文字"
replace="需要被替换的文字"
to="替换文字"
isClearTags="清除标签"
isReturnToBr="回车改为换行"
isLower="转换为小写"
isUpper="转换为大写"
leftText="显示在信息前的文字"
rightText="显示在信息后的文字">
</stl:sqlContent>
# 说明
通过 stl:sqlContent 标签在模板中显示数据库值。
stl:sqlContent 标签可以单独使用或者作为 <stl:sqlContents> 等内容列表标签的子标签。
stl:sqlContent 单独使用时需要指定 connectionString 或 connectionStringName 及 queryString 属性。
stl:sqlContent 标签与 STL 数据库实体的作用基本相同,stl:sqlContent 可以控制显示的字数及格式。
<stl:sqlContent>标签对应的实体为{stl:sqlContent}。
# 属性
属性 | 说明 |
---|---|
connectionStringName | 数据库链接字符串名称 |
connectionString | 数据库链接字符串 |
queryString | 数据库查询语句 |
type | 显示的类型 |
format | 显示的格式 |
wordNum | 显示字符的数目 |
startIndex | 字符开始位置 |
length | 指定字符长度 |
ellipsis | 文字超出部分显示的文字 |
replace | 需要被替换的文字 |
to | 替换文字 |
isClearTags | 清除标签 |
isReturnToBr | 回车改为换行 |
isLower | 转换为小写 |
isUpper | 转换为大写 |
leftText | 显示在信息前的文字 |
rightText | 显示在信息后的文字 |
# connectionStringName - 数据库链接字符串名称
存储在系统根目录的Web.config文件中的数据库链接字符串名称,默认为系统使用的数据库 ConnectionString
。
# connectionString - 数据库链接字符串
直接设置数据库链接字符串。
DANGER
connectionString属性将在模板文件中暴露数据库链接字符串,如果网站部署在外网,必须使用connectionStringName替代connectionString属性,防止数据库链接被暴露。
# queryString - 数据库查询语句
数据库查询 SQL 语句
# type - 显示的类型
显示数据库的字段名称。根据 queryString 表字段的不同 type 属性有不同的取值。
# format - 显示的格式
当需要显示日期型的字段值时,可以通过 format 属性来设置日期格式。
<stl:sqlContent type="AddDate" format="yyyy-MM-dd HH:mm:ss"></stl:sqlContent>
我们也可以通过 format 属性来设置数字格式:
<stl:sqlContent type="ItemIndex" format="D2"></stl:sqlContent>
以上示例将用前导零填充数值,如数值为1,格式化后将显示为01。
# wordNum - 显示字符的数目
设置显示文字的字数,超出部分将用 ellipsis 属性设置的值替代。
TIP
wordNum 区分中英文,中文汉字算作一个字符,两个英文字母才算作一个字符。 由于在 Web 页面中,两个英文字母的宽度等于一个汉字,所以我们通常使用 wordNum 属性来设置文本的显示数量。
<stl:sqlContent wordNum="50"></stl:sqlContent>
# startIndex - 字符开始位置
设置文字开始显示的位置,默认值为 0,代表从头显示。
TIP
startIndex 不区分中英文,汉字、英文字母、空格及符号均认为是一个字符。
<stl:sqlContent startIndex="10"></stl:sqlContent>
# length - 指定字符长度
设置显示文字的字数,超出部分将用 ellipsis 属性设置的值替代。
TIP
length 不区分中英文,汉字、英文字母、空格及符号均认为是一个字符。
<stl:sqlContent length="100"></stl:sqlContent>
# ellipsis - 文字超出部分显示的文字
设置了 wordNum 属性或者 length 属性时,当文字超出了指定的字数后,超出部分将用 ellipsis 属性设置的值来替代。
ellipsis 的默认值为 ...
,你也可以设置空值(ellipsis="")来让超出部分不使用符号替换。
<stl:sqlContent wordNum="100" ellipsis=" -- end --"></stl:sqlContent>
# replace - 需要被替换的文字
如果需要将文字中的一部分替换为另一部分,可以使用 replace 属性和 to 属性。
replace 代表需要替换的文字,支持纯文本、列表和正则表达式三种写法。
# 使用纯文本替换
纯文本替换直接输入替换前文字和替换后文字即可:
<stl:sqlContent replace="他" to="她"></stl:sqlContent>
# 使用列表替换
列表替换适合多个文本替换的情况,将需要替换的文字用英文逗号(,)隔开:
<stl:sqlContent replace="他,她" to="he,she"></stl:sqlContent>
如果多个文本都替换为一个文本,to 属性可以不使用逗号隔开:
<stl:sqlContent replace="他,她" to="who"></stl:sqlContent>
# 使用正则表达式替换
正则表达式替换需要将 replace 前后添加“/”符号,“/”符号之间的文字为替换需要使用的正则表达式:
<stl:sqlContent replace="/(Mr\\.? |Mrs\\.? |Miss |Ms\\.? )/" to=""></stl:sqlContent>
# to - 替换文字
to 代表替换后的文字。
# isClearTags - 清除标签
设置是否清除 HTML 标签,仅显示纯文本。
在后台内容编辑器中录入的数据通常会带有大量的 HTML 标签,如果我们只希望显示文字本身,需要使用 isClearTags 属性。
"true"
清除 HTML 标签。"false"
不清除 HTML 标签。此值是默认的,如果没有指定属性的话。
<stl:sqlContent type="content" isClearTags="true"></stl:sqlContent>
# isReturnToBr - 回车改为换行
设置是否将回车换行符号替换为 HTML <br>换行标签。
由于 HTML 中的换行在页面中显示为空格,所以如果需要显示后台 TextArea 文本框录入的换行时,需要使用 isReturnToBr 属性。
"true"
替换回车符。"false"
不替换回车符。此值是默认的,如果没有指定属性的话。
<stl:sqlContent type="summary" isReturnToBr="true"></stl:sqlContent>
# isLower - 转换为小写
设置是否将文本中的所有英文字母转换为小写字母。
"true"
转换为小写。"false"
不转换为小写。此值是默认的,如果没有指定属性的话。
<stl:sqlContent type="title" isLower="true"></stl:sqlContent>
# isUpper - 转换为大写
设置是否将文本中的所有英文字母转换为大写字母。
"true"
转换为大写。"false"
不转换为大写。此值是默认的,如果没有指定属性的话。
<stl:sqlContent type="title" isUpper="true"></stl:sqlContent>
# leftText - 显示在信息前的文字
显示在文字之前的文字,系统会判断文字是否为空,如果文字为空,文字前缀也将不显示。
<stl:sqlContent leftText="标题:" type="title"></stl:sqlContent>
# rightText - 显示在信息后的文字
显示在文字之后的文字,系统会判断文字是否为空,如果文字为空,文字后缀也将不显示。
<stl:sqlContent leftText="【" rightText="】" type="title"></stl:sqlContent>
# 示例
# 显示最新添加的内容列表
下面的例子显示按最新添加时间获取内容列表。
<stl:sqlContents connectionStringName="ConnectionString" pageNum="10" cellpadding="2">
<stl:queryString>
SELECT TOP 6 * FROM {stl.tableName} WHERE siteId = {Stl.SiteId} ORDER BY AddDate DESC
</stl:queryString>
<stl:sqlContent type="Title" wordnum="20"></stl:sqlContent>
(<stl:sqlContent type="AddDate" format="yyyy-MM-dd"></stl:sqlContent>)
<br>
</stl:sqlContents>