Small width layout Medium width layout Maximum width layout Small text Medium text Large text
     Search
Downloads Downloads Directory Directory Forums Forums Forge Forge Blogs Blogs        Marketplace Marketplace Careers Program Careers
Community › Forums Register  |  

AppTheory specializes in solutions based on the DotNetNuke platform and has 2 employees on the DotNetNuke Core Team.
  Ads  
 


  Sponsors  

Meet Our Sponsors

CrystalTech Web Hosting™
Webhost4life, specialists in DNN hosting
Mad Development is a full service interactive agency focusing on the merge of design, technology, e-commerce, and affiliate marketing by providing total website solutions.
AspDotNetStoreFront - E-Commerce by Design - The Leading ASP.NET shopping cart platform for developers!
SteadyRain
DataSprings - Great Ideas. Always Flowing.
 


DotNetNuke Forums
 
  Forum  DotNetNuke® Pro...  User Defined Ta...  How can I make Search work with the CardView?
Previous Previous
 
Next Next
New Post 5/9/2008 6:04 PM
User is offline ajsansone
183 posts
www.graphicsphere.net/
9th Ranked


Re: How can I make Search work with the CardView? 
Modified By ajsansone  on 5/11/2008 2:13:02 AM)

Here's a sample XSLT File to get the Search, Card View & Detail View to Work.


Anthony John Sansone
Graphicsphere.Net, President
Palm Harbor, Florida, U.S.A.
http://www.graphicsphere.net
View Anthony J. Sansone's profile on LinkedIn
 
New Post 5/9/2008 8:15 PM
User is offline ajsansone
183 posts
www.graphicsphere.net/
9th Ranked


Re: How can I make Search work with the CardView? 
Modified By ajsansone  on 7/6/2008 2:17:59 PM)

Here's a sample XSLT File to get the Search, Card View & Detail View to Work. Just copy and paste the code into wordpad and save it as an .xsl file. Then upload to the /desktopmodules/userdefinedtable/xslstylesheets folder of your website. Last thing you need to do is change the userdefinedtable to the xsl file you just uploaded. Go to manage userdefinedtable's display settings and choose the predefined xsl file.

<?xml version="1.0" encoding="UTF-8" ?>
<!--
 DotNetNuke® - http://www.dotnetnuke.com
 Copyright (c) 2002-2007 by DotNetNuke Corp.

 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
 documentation files (the "Software"), to deal in the Software without restriction, including without limitation
 the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and
 to permit persons to whom the Software is furnished to do so, subject to the following conditions:

 The above copyright notice and this permission notice shall be included in all copies or substantial portions
 of the Software.

 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
 TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
 THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
 CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 DEALINGS IN THE SOFTWARE.
-->
<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform' xmlns:udt="DotNetNuke/UserDefinedTable">
<xsl:output method="xml" version="1.0" indent="yes" omit-xml-declaration="yes" />
  <!--
  This prefix is used to generate module specific query strings
  Each querystring or form value that starts with udt_{ModuleId}_param
  will be added as parameter starting with param
  -->
  <xsl:variable name="prefix_param">udt_<xsl:value-of select="//udt:Context/udt:ModuleId" />_param</xsl:variable>
  <xsl:param name="param_search" />
  <xsl:param name="param_searchpostback" />
  <xsl:param name="param_ispostback" />
  <xsl:variable name="search">
    <xsl:choose>
      <xsl:when test="$param_ispostback">
        <xsl:value-of select="$param_searchpostback" />
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="$param_search" />
      </xsl:otherwise>
    </xsl:choose>
  </xsl:variable>
  <xsl:param name="param_page" select="1" />
  <xsl:variable name="paging" select="//udt:Context/udt:Paging" />
  <xsl:variable name="orderBy" select="//udt:Fields[udt:UserDefinedFieldId=//udt:Context/udt:OrderBy]/udt:SortColumn" />
  <xsl:variable name="orderDirection" select="//udt:Context/udt:OrderDirection" />
  <xsl:variable name="orderType">
    <xsl:variable name="dataType" select="//udt:Fields[udt:UserDefinedFieldId=//udt:Context/udt:OrderBy]/udt:FieldType" />
    <xsl:choose>
      <xsl:when test="$dataType='Int32' or $dataType='Decimal' or $dataType='Currency'">number</xsl:when>
      <xsl:otherwise>text</xsl:otherwise>
    </xsl:choose>
  </xsl:variable>
  <xsl:param name="param_detail" />
 
  <xsl:template match="udt:Data" mode="detail">
    <xsl:variable name ="imgColumn" select="//udt:Fields[udt:FieldType='Image'][1]/udt:ValueColumn"/>
    <xsl:variable name ="titleColumn" select="//udt:Fields[udt:FieldType='String'][1]/udt:ValueColumn"/>
    <xsl:variable name ="currencyColumn" select="//udt:Fields[udt:FieldType='Currency'][1]/udt:ValueColumn"/>
    <xsl:variable name="id" select="udt:UserDefinedRowId"/>
    <table cellspacing="0" cellpadding="4" border="0" style="border: silver 1px solid; border-collapse: collapse;">
      <tr>
        <td>    
          <div align="center"><font style="font-size:18px"><strong><xsl:value-of select="//udt:Data[udt:UserDefinedRowId=$id]/*[name()=$titleColumn]" disable-output-escaping="yes"/></strong></font></div>
        </td>
      </tr>
      <tr>
        <td>
          <table cellspacing="0" cellpadding="7"  border="0" style="border-width:0px;border-collapse:collapse;">
            <tr class="normal">
              <td valign="middle">
                <xsl:call-template name="EditLink" />
              </td>
              <td valign="middle">
    <xsl:value-of select="//udt:Data[udt:UserDefinedRowId=$id]/*[name()=$imgColumn]" disable-output-escaping="yes"/>
     </td>
              <td>
                <table cellspacing="7" cellpadding="0" border="0">
     <xsl:for-each select="//udt:Fields">   
      <xsl:variable name="NameOfValueColumn" select="udt:ValueColumn"/>
      <xsl:variable name="CurrentValue" select="//udt:Data[udt:UserDefinedRowId=$id]/*[name()=$NameOfValueColumn]"/>
      <xsl:if test ="$CurrentValue and $CurrentValue!='' and ($NameOfValueColumn!=$imgColumn or not($imgColumn)) and ($NameOfValueColumn!=$titleColumn  or not($titleColumn)) and (udt:Visible='true' or udt:Visible='True')" >
       <tr class="normal">
        <xsl:if test="(position() mod 2 = 1)">
         <xsl:attribute name="bgcolor">#FFFFFF</xsl:attribute>
        </xsl:if>
        <td class="subhead" align="left" >
         <xsl:value-of select ="udt:FieldTitle"/>:
        </td>
        <td>&#160;</td>
        <td class="normal" align="left" >
         <xsl:choose>
            <xsl:when test="udt:FieldType='Currency'">
               <xsl:value-of select='format-number($CurrentValue, "$###,##0.00")' disable-output-escaping="yes"/>
            </xsl:when>
            <xsl:when test="udt:FieldType='Int32' and udt:FieldTitle!='Year'">
               <xsl:value-of select='format-number($CurrentValue, "###,##0")' disable-output-escaping="yes"/>
            </xsl:when>
            <xsl:otherwise>
               <xsl:value-of select="$CurrentValue" disable-output-escaping="yes"/>
            </xsl:otherwise>
         </xsl:choose>           
        </td>
       </tr>
      </xsl:if>
     </xsl:for-each>
    </table>
              </td>
            </tr>
          </table>
        </td>
      </tr>
    </table>
   <p><xsl:call-template name="ListView" /><a href="{//udt:Context/udt:ApplicationPath}/tabid/{//udt:Context/udt:TabId}/Default.aspx"><font color="#0000FF">Go back</font></a></p>
  </xsl:template>
 
  <xsl:template match="udt:Data" mode="list">
    <xsl:param name="from" select="1" />
    <xsl:param name="to" select="count(*)" />
    <xsl:variable name ="imgColumn" select="//udt:Fields[udt:FieldType='Image'][1]/udt:ValueColumn"/>
    <xsl:variable name ="titleColumn" select="//udt:Fields[udt:FieldType='String'][1]/udt:ValueColumn"/>
    <xsl:variable name="id" select="udt:UserDefinedRowId"/>
    <xsl:if test="position() &gt; $from and position() &lt; $to">
    <table cellspacing="0" cellpadding="4" border="0" style="border: silver 1px solid; border-collapse: collapse;">
      <tr>
        <td>
          <xsl:call-template name="EditLink" />
        </td>
        <td>
          <xsl:call-template name="DetailView" />
        </td>
        <td valign="middle">
    <xsl:value-of select="//udt:Data[udt:UserDefinedRowId=$id]/*[name()=$imgColumn]" disable-output-escaping="yes"/>
     </td>
        <td>
          <table cellspacing="0" cellpadding="4" border="0" style="border-width:0px;border-collapse:collapse;">
            <tr>
              <td>
                <strong><xsl:value-of select="udt:Full_x0020_Name" disable-output-escaping="yes" /></strong>
              </td>
            </tr>
            <tr>
              <td>
                <xsl:value-of select="udt:City" disable-output-escaping="yes" />, <xsl:value-of select="udt:State" disable-output-escaping="yes" />
              </td>
            </tr>
            <tr>
              <td>
                <xsl:value-of select="udt:Country" disable-output-escaping="yes" />
              </td>
            </tr>
          </table>
        </td>
      </tr>
    </table>
    <br />
    </xsl:if>
  </xsl:template>
 
  <xsl:template match="/udt:UserDefinedTable">
    <div align="center">
    <span class="style1"><font style="font-size:18px"><strong>Graphicsphere.Net® 3D Modelers</strong></font></span><br />
    <span class="style2"><font style="font-size:12px">Search for a 3D modeler in your city, state or country.</font></span>
    <br /><br />
    <xsl:choose>
      <xsl:when test="$param_detail">
        <!--master-detail view-->
        <xsl:apply-templates select="udt:Data[udt:UserDefinedRowId=$param_detail]" mode="detail" />
      </xsl:when>
      <xsl:otherwise>
        <xsl:variable name="searchColumns" select="//udt:Fields[udt:Searchable='true']/udt:ValueColumn" />
        <xsl:if test="//udt:Fields[udt:Searchable='true']">
          <xsl:call-template name="Searchform" />
        </xsl:if>
        <br /><br />
        <xsl:variable name="currentData" select="udt:Data[contains(*[name()=$searchColumns][1],$search) or contains(*[name()=$searchColumns][2],$search) or contains(*[name()=$searchColumns][3],$search) or contains(*[name()=$searchColumns][4],$search) or contains(*[name()=$searchColumns][5],$search)]" />
        <xsl:variable name="from">
          <xsl:choose>
            <xsl:when test="$paging">
              <xsl:value-of select="$paging * $param_page - $paging" />
            </xsl:when>
            <xsl:otherwise>0</xsl:otherwise>
          </xsl:choose>
        </xsl:variable>
        <xsl:variable name="to">
          <xsl:choose>
            <xsl:when test="$paging">
              <xsl:value-of select="$paging * $param_page +1" />
            </xsl:when>
            <xsl:otherwise>
              <xsl:value-of select="count($currentData)+1" />
            </xsl:otherwise>
          </xsl:choose>
        </xsl:variable>
        <table>
          <xsl:apply-templates select="$currentData" mode="list">
            <xsl:sort select="*[name()=$orderBy]" order="{$orderDirection}" data-type="{$orderType}" />
            <xsl:with-param name="from" select="$from" />
            <xsl:with-param name="to" select="$to" />
          </xsl:apply-templates>
        </table>
        <xsl:if test="$paging">
          <xsl:call-template name="renderPaging">
            <xsl:with-param name="maxPages" select="ceiling(count($currentData) div $paging)" />
          </xsl:call-template>
        </xsl:if>
      </xsl:otherwise>
    </xsl:choose>
    </div>
  </xsl:template>

  <xsl:template name="Searchform">
    <input type="text" name="{$prefix_param}_searchPostback" value="{$search}" />
    <input type="submit" name="go" value="{//udt:Context/udt:LocalizedString_Search}" />
    <input type="hidden" name="{$prefix_param}_ispostback" value="true" />
  </xsl:template>

  <xsl:template name="pagingSinglePages">
    <!--renders paging links-->
    <xsl:param name="pageNumber" select="1" />
    <xsl:param name="maxPages" select="ceiling(count(//udt:Data) div $paging)" />
    <xsl:choose>
      <xsl:when test="$param_page=$pageNumber">
        <span class="NormalDisabled">[<xsl:value-of select="$pageNumber" />]</span>
      </xsl:when>
      <xsl:otherwise>
        <a href="" class="CommandButton">
          <xsl:value-of select="$pageNumber" />
        </a>
      </xsl:otherwise>
    </xsl:choose>
    <xsl:if test="$pageNumber &lt; $maxPages">
      <xsl:call-template name="pagingSinglePages"><xsl:with-param name="pageNumber" select="$pageNumber +1" /><xsl:with-param name="maxPages" select="$maxPages" />
      </xsl:call-template>
    </xsl:if>
  </xsl:template>

  <xsl:template name="renderPaging">
    <xsl:param name="maxPages" select="ceiling(count(//udt:Data) div $paging)" />
    <xsl:variable name="previous" select="$param_page - 1" />
    <xsl:variable name="next" select="$param_page + 1" />
    <table class="PagingTable" bordercolor="silver" border="0" style="border-color:silver;border-width:1px;border-style:Solid;width:100%;">
      <tr>
        <td class="Normal" align="Left">
          <xsl:value-of select="//udt:Context/udt:LocalizedString_Page" />&#160;<xsl:value-of select="$param_page" />&#160;<xsl:value-of select="//udt:Context/udt:LocalizedString_Of" />&#160;<xsl:value-of select="$maxPages" /></td>
        <td class="Normal" align="Right">
          <xsl:choose>
            <xsl:when test="$param_page&gt;1">
              <a href="" class="CommandButton">
                <xsl:value-of select="//udt:Context/udt:LocalizedString_First" />
              </a>
            </xsl:when>
            <xsl:otherwise>
              <span class="NormalDisabled">
                <xsl:value-of select="//udt:Context/udt:LocalizedString_First" />
              </span>
            </xsl:otherwise>
          </xsl:choose> 
<xsl:choose><xsl:when test="$param_page&gt;1"><a href="" class="CommandButton"><xsl:value-of select="//udt:Context/udt:LocalizedString_Previous" /></a></xsl:when><xsl:otherwise><span class="NormalDisabled"><xsl:value-of select="//udt:Context/udt:LocalizedString_Previous" /></span></xsl:otherwise></xsl:choose> 
<xsl:variable name="startpage"><xsl:choose><xsl:when test="$param_page&gt;5"><xsl:value-of select="$param_page -4" /></xsl:when><xsl:otherwise>1</xsl:otherwise></xsl:choose></xsl:variable><xsl:variable name="endpage"><xsl:choose><xsl:when test="$startpage+9&gt;$maxPages"><xsl:value-of select="$maxPages" /></xsl:when><xsl:otherwise><xsl:value-of select="$startpage +9" /></xsl:otherwise></xsl:choose></xsl:variable><xsl:call-template name="pagingSinglePages"><xsl:with-param name="pageNumber" select="$startpage" /><xsl:with-param name="maxPages" select="$endpage" /></xsl:call-template><xsl:choose><xsl:when test="$param_page&lt;$maxPages"><a href="" class="CommandButton"><xsl:value-of select="//udt:Context/udt:LocalizedString_Next" /></a></xsl:when><xsl:otherwise><span class="NormalDisabled"><xsl:value-of select="//udt:Context/udt:LocalizedString_Next" /></span></xsl:otherwise></xsl:choose> 
<xsl:choose><xsl:when test="$param_page&lt;$maxPages"><a href="" class="CommandButton"><xsl:value-of select="//udt:Context/udt:LocalizedString_Last" /></a></xsl:when><xsl:otherwise><span class="NormalDisabled"><xsl:value-of select="//udt:Context/udt:LocalizedString_Last" /></span></xsl:otherwise></xsl:choose> 
</td>
      </tr>
    </table><br />
   <div align="center"><strong>Total Modelers: <xsl:value-of select="count(udt:Data)"/></strong></div>
  </xsl:template>

  <xsl:template name="EditLink">
    <xsl:if test="udt:EditLink">
      <a href="{udt:EditLink}">
        <img border="0" alt="edit" src="{//udt:Context/udt:ApplicationPath}/images/edit.gif" />
      </a>
    </xsl:if>
  </xsl:template>

  <xsl:template name="ListView">
    <a href="{//udt:Context/udt:ApplicationPath}/tabid/{//udt:Context/udt:TabId}/Default.aspx">
      <img border="0" alt="Back" src="{//udt:Context/udt:ApplicationPath}/images/lt.gif" />
    </a>
  </xsl:template>

  <xsl:template name="DetailView">
    <a href="?{$prefix_param}_detail={udt:UserDefinedRowId}">
      <img border="0" alt="detail" src="{//udt:Context/udt:ApplicationPath}/images/view.gif" />
    </a>
  </xsl:template>
</xsl:stylesheet>


Anthony John Sansone
Graphicsphere.Net, President
Palm Harbor, Florida, U.S.A.
http://www.graphicsphere.net
View Anthony J. Sansone's profile on LinkedIn
 
Previous Previous
 
Next Next
  Forum  DotNetNuke® Pro...  User Defined Ta...  How can I make Search work with the CardView?
 


Forum Policy

These Discussion Forums are dedicated to the discussion of the DotNetNuke Web Application Framework.

For the benefit of the community and to protect the integrity of the project, please observe the following posting guidelines:

1. No Advertising. This includes promotion of commercial and non-commercial products or services which are not directly related to DotNetNuke.
2. Discussion or promotion of DotNetNuke product releases under a different brand name are strictly prohibited.
3. No Flaming or Trolling.
4. No Profanity, Racism, or Prejudice.
5. Site Moderators have the final word on approving/removing a thread or post or comment.
6. English language posting only, please.

 


DotNetNuke Hosting Provider UK
UK leading DotNetNuke Hosting provider. Owned and operated by a Microsoft Gold Certified Partner.
www.DNN-Portals.co.uk
Alliance Systems & Programming Inc
Alliance is not just our name... it's how we do business. We partner with our clients, learning their business processes and standards and then applying our expertise to help them improve their workflow and profitability.
www.Alliancesys.com
Customer Connect
Customer Connect provides cutting edge solutions that deliver sales, marketing and customer service results.
www.customer-connect.com

DotNetNuke Corporation   Terms Of Use  Privacy Statement
DotNetNuke®, DNN®, and the DotNetNuke logo are trademarks of DotNetNuke Corporation
Hosted by MaximumASP