多模型的信息列表中获取各自详细内容
无论在通用信息列表、头条图文信息列表、头条图文列表、内容带图片的信息列表和手机版相应的信息列表想获取信息的详细内容时都必须绑定单一的模型ID才能实现!导致一个栏目中有多模型存在时无法实现!
通过查看标签发现,这是由于没有进行连表查询的原因!当绑定了指定模型ID时才进行连表查询!
知道没有进行连表查询那我们对每条信息都进行一次连表查询即可!
1)通过查询数据库表PE_CommonModel发现,它存在GeneralID(全局内容ID),ModelID(模型ID)
2)通过上面的pe:GetSqlSnippet(modeId)函数:得到内连接的SQL串片段.
通过上面两点分析,思路逐渐清晰咯!
第一:得到每条信息的“内连接SQL片段”,暂定标签名称为:"PE获取模型内链接SQL.config".
代码如下:
改进类
sin
sql_sysquery
False
GeneralID
supersql
获取内容ID
false
false
SELECT TOP 1 ModelID FROM PE_CommonModel WHERE GeneralID = @GeneralID
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="" xmlns:pe="labelproc" exclude-result-prefixes="pe">
<xsl:param name="GeneralID" />
<xsl:output method="html" />
<xsl:template match="/NewDataSet/Table">
<xsl:value-of select="pe:GetSqlSnippet(ModelID)"/>
</xsl:template>
</xsl:stylesheet>
第二:进行连表查询得到相应模型的详细内容等,暂定标签名为:"PE获取相应模型内容"
代码如下:
改进类
sin
sql_sysquery
False
sqlUT
supersql
INNER JOIN PE_U_Article UT ON (CM.ItemID = UT.ID)
关联查询语句
itemId
supersql
内容ID
contentLength
int
普通内容显示个数
false
false
SELECT Top 1 *
FROM
PE_CommonModel CM
@sqlUT
WHERE
CM.GeneralID = @itemId AND
CM.Status = 99
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="" xmlns:pe="labelproc" exclude-result-prefixes="pe">
<xsl:param name="itemId" />
<xsl:param name="contentLength" />
<xsl:output method="html" />
<xsl:template match="/NewDataSet/Table">
<xsl:choose>
<xsl:when test="TableName = 'PE_U_Article'">
<xsl:choose>
<xsl:when test="Intro != ''">
<xsl:value-of disable-output-escaping="yes" select="pe:CutText(pe:RemoveHtml(pe:ReplaceText(Intro,' ','')),$contentLength,'…')" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of disable-output-escaping="yes" select="pe:CutText(pe:RemoveHtml(pe:ReplaceText(Content,' ','')),$contentLength,'…')" />
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="TableName = 'PE_U_Photo'">
<xsl:value-of disable-output-escaping="yes" select="pe:CutText(pe:RemoveHtml(pe:ReplaceText(PhotoIntro,' ','')),$contentLength,'…')" />
</xsl:when>
<xsl:when test="TableName = 'PE_U_Soft'">
<xsl:value-of disable-output-escaping="yes" select="pe:CutText(pe:RemoveHtml(pe:ReplaceText(SoftIntro,' ','')),$contentLength,'…')" />
</xsl:when>
<xsl:when test="TableName = 'PE_CommonProduct'">
<xsl:value-of disable-output-escaping="yes" select="pe:CutText(pe:RemoveHtml(pe:ReplaceText(ProductIntro,' ','')),$contentLength,'…')" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of disable-output-escaping="yes" select="pe:CutText(pe:RemoveHtml(pe:ReplaceText(Content,' ','')),$contentLength,'…')" />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
第三:使用方法:只要在相应样式类(比如:手机类_头条图文信息列表_自适应.config)标签中将获取详细内容片段修改下面效果即可:
代码如下:
{PE.Label id="PE获取相应模型内容" sqlUT="{PE.Label id="PE获取模型内链接SQL" GeneralID=" "/}" itemId=" " contentLength=" "/}
手机版调用方式:

手机版效果:

最后下载地址如下:【下载地址】
