您的位置: 首页 >日志>前端技术>详细内容

前端技术

多模型的信息列表中获取各自详细内容

来源:本站原创 发布时间:2014-08-18 14:15:47 浏览次数: 【字体:

     无论在通用信息列表、头条图文信息列表、头条图文列表、内容带图片的信息列表和手机版相应的信息列表想获取信息的详细内容时都必须绑定单一的模型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=" "/}

手机版调用方式:

手机版效果:

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

×

用户登录