New Community Website

Ordinarily, you'd be at the right spot, but we've recently launched a brand new community website... For the community, by the community.

Yay... Take Me to the Community!

Welcome to the DNN Community Forums, your preferred source of online community support for all things related to DNN.
In order to participate you must be a registered DNNizen

HomeHomeDevelopment and...Development and...Getting StartedGetting StartedArtisteer and partial rendering issueArtisteer and partial rendering issue
Previous
 
Next
New Post
11/8/2010 12:26 PM
 
Hello, I'm developing a module that has standard asp.net controls.  The site I'm developing for uses an Artisteer generated skin module.  Certain elements such as buttons are are styled with javascript on page load.  After inspecting the code, what I realize is that the actual rendered <input> tag is wrapped with a <div> and some sibling <span(s)> are added.

The problem is that if the module control is set to "support partial rendering" or I wrap some markup with <asp:Button(s)> in an <asp:UpdatePanel>, the button is rendered minus the additional elements and classes, thus losing it's style. 

asp.net markup:
<asp:UpdatePanel runat="server" ID="upnlTest">
    <ContentTemplate>
        <asp:Button runat="server" ID="cmdFail" Text="Click here to see button style fail" />
    </ContentTemplate>
</asp:UpdatePanel>

original rendered markup:
<div id="dnn_ctr561_ButtonStyleFail_upnlTest"
     <span class="art-button-wrapper  ">
          <span class="l"> </span>
          <span class="r"> </span>
          <input type="submit" class="art-button" id="dnn_ctr561_ButtonStyleFail_cmdFail" value="Click here to see button style fail" name="dnn$ctr561$ButtonStyleFail$cmdFail">
     </span>   
</div>


after post-back (partial rendering) markup:
<div id="dnn_ctr561_ButtonStyleFail_upnlTest">
     <input type="submit" class="art-button" id="dnn_ctr561_ButtonStyleFail_cmdFail" value="Click here to see button style fail" name="dnn$ctr561$ButtonStyleFail$cmdFail">
</div>


Anyone have any experience or ideas about this?  I realize this isn't a DNN-specific issue, but I wager I'm not the only person using Artisteer with DNN and Artisteer's forum sucks.

Thanks,
Gabe
 
New Post
11/8/2010 2:33 PM
 
Gabel

I am using Artisteer, however, I have not run into this problem.

If you would post the entire contents of your ?Skin?.ascx file here I would be happy to take a look at it.

Good luck!


Josh
 
New Post
11/8/2010 2:57 PM
 
Thanks for the offer of assistance Josh!  I'm using asp.net 4.  Here's the source to the skin.ascx file:
<%@ Control language="vb" CodeBehind="~/admin/Skins/skin.vb" AutoEventWireup="false" Explicit="True" Inherits="DotNetNuke.UI.Skins.Skin" %>
<%@ Register TagPrefix="dnn" TagName="LOGO" Src="~/Admin/Skins/logo.ascx" %>
<%@ Register TagPrefix="dnn" TagName="LOGIN" Src="~/Admin/Skins/login.ascx" %>
<%@ Register TagPrefix="dnn" TagName="BREADCRUMB" Src="~/Admin/Skins/breadcrumb.ascx" %>
<%@ Register TagPrefix="dnn" TagName="ARTMENU" Src="~/DesktopModules/ArtMenuSO/ArtMenuSO.ascx" %>
<%@ Register TagPrefix="dnn" TagName="STYLES" Src="~/Admin/Skins/Styles.ascx" %>
<%@ Register TagPrefix="dnn" TagName="COPYRIGHT" Src="~/admin/Skins/copyright.ascx" %>
<%@ Register TagPrefix="dnn" TagName="TERMS" Src="~/admin/Skins/terms.ascx" %>
<%@ Register TagPrefix="dnn" TagName="PRIVACY" Src="~/admin/Skins/privacy.ascx" %>
<%@ Register TagPrefix="dnn" TagName="TEXT" Src="~/admin/Skins/Text.ascx" %>
 
<script runat="server">
 
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Me.Page.ClientScript.RegisterClientScriptInclude("script.js", Me.TemplateSourceDirectory & "/script.js")
    End Sub
     
    Private Function CollapseSidebars() As String
        Return String.Empty
    End Function
</script>
 
    <div id="art-page-background-gradient"></div>
<div id="art-main">
<div class="art-sheet">
    <div class="art-sheet-tl"></div>
    <div class="art-sheet-tr"></div>
    <div class="art-sheet-bl"></div>
    <div class="art-sheet-br"></div>
    <div class="art-sheet-tc"></div>
    <div class="art-sheet-bc"></div>
    <div class="art-sheet-cl"></div>
    <div class="art-sheet-cr"></div>
    <div class="art-sheet-cc"></div>
    <div class="art-sheet-body">
        <div id="ControlPanel" runat="server"></div>
        <dnn:ARTMENU ID="ArtMenu1" ShowHiddenTabs="False" ShowAdminTabs="True" ShowDeletedTabs="False" ShowLoginTab="True" ShowUserTab="True" runat="server" /><div class="art-header">
    <div class="art-header-jpeg"></div>
<div class="art-logo">
                    <div class="logo">
                        <dnn:LOGO runat="server" ID="dnnLogo" />
                    </div>
 
 <div id="slogan-text" class="art-logo-text">TSP, 401Ks, Brokerage Accounts, Variable Annuities, and more!</div>
</div>
 
</div>
<div class="art-content-layout">
    <div class="art-content-layout-row">
<div class="art-layout-cell art-content<%= CollapseSidebars() %>">
<div id="ContentPane" runat="server"></div>
</div>
 
    </div>
</div>
<div class="cleared"></div>
<div class="art-footer">
    <div class="art-footer-t"></div>
    <div class="art-footer-l"></div>
    <div class="art-footer-b"></div>
    <div class="art-footer-r"></div>
    <div class="art-footer-body">
        <div class="art-footer-text">
<p><dnn:TERMS runat="server" ID="dnnTerms" />
    | <dnn:PRIVACY ID="dnnPrivacy" runat="server" /><br />
    <dnn:COPYRIGHT runat="server" id="dnnCopyright" /></p>
 
        </div>
        <div class="cleared"></div>
    </div>
</div>
 
        <div class="cleared"></div>
    </div>
</div>
<div class="cleared"></div>
<p class="art-page-footer"></p>
 
</div>
 
 
<dnn:STYLES runat="server" ID="style" Name="style" StyleSheet="style-admin.css" UseSkinPath="true" />
<dnn:STYLES runat="server" ID="styleIE6" Name="styleIE6" Condition="IE 6" StyleSheet="style.ie6.css" UseSkinPath="true" />
<dnn:STYLES runat="server" ID="styleIE7" Name="styleIE7" Condition="IE 7" StyleSheet="style.ie7.css" UseSkinPath="true" />

 
New Post
11/8/2010 6:05 PM
 
I just worked out a solution that seems to do the trick, although it's a bit of a hack and will require me to update my skin package manually.  I wrote an event handler for EndRequest that executes the two Artisteer functions that change the look and feel of html elements.  I put this function in both page-admin.ascx and page.ascx directly after the server-side script block.

<script type="text/javascript">
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(ReloadArtStyleFuncs);
 
    function ReloadArtStyleFuncs(sender, args) {
        if (args.get_error() == undefined) {
            artButtonsSetupJsHover("art-button");
            artFixEventsModule();
        }
    }
</script>

This causes buttons in update panels to get restyled after a partial render, but if there's a better solution, I'm interested in it.  My intuition is that Artisteer needs to implement a fix for this.

Gabe
 
New Post
11/9/2010 6:11 PM
 
Gabe

That's not a bad solution, it works.

I looked at it a little last night and couldn't see any blatant problems with the way Artisteer is doing it, just that it doesn't work for partial renders in your case.

One thought for a quick solution might be to try putting the server side script in your default.aspx page, see if that helps resolve some of the problem. Remember to set the correct path to the .js file. This would at least make your fix a little more permanent.

When I have more time I'll try a few scenarios and if I can come up with anything I'll let you know.

Glad you got it working for now at least.


Josh
 
Previous
 
Next
HomeHomeDevelopment and...Development and...Getting StartedGetting StartedArtisteer and partial rendering issueArtisteer and partial rendering issue


These Forums are dedicated to discussion of DNN Platform and Evoq Solutions.

For the benefit of the community and to protect the integrity of the ecosystem, 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 DNN.
  2. No vendor trolling / poaching. If someone posts about a vendor issue, allow the vendor or other customers to respond. Any post that looks like trolling / poaching will be removed.
  3. Discussion or promotion of DNN Platform product releases under a different brand name are strictly prohibited.
  4. No Flaming or Trolling.
  5. No Profanity, Racism, or Prejudice.
  6. Site Moderators have the final word on approving / removing a thread or post or comment.
  7. English language posting only, please.