Installation problems

Apr 28, 2009 at 1:40 PM
I think I'm doing everything correctly, but can't get the extension to work.  I've downloaded the latest build (24242) and built the solution.  The CSSFriendly.dll is successfully created and located in the bin dir.  I go to Default.aspx under the web, and when I try to debug the page, I get the "Could not load type 'CSSFriendly.MenuAdapter'." error.  Can you help?
Jun 26, 2009 at 5:18 AM

Has your dll file been published to your web folder/bin?

All you need to have is

1. CSSFriendlyAdapters.browser in the App_Browsers folder

2. CSSFriendly.dll in the bin folder of your application

That worked for me. 

 

 

Jun 30, 2009 at 12:01 AM

Hello,

I apologize ahead of time if my post reflects my being way beyond frustrated at this particular moment.....I am really hoping someone can help me here.

I have spent the entire day trying to figure out how to install these adapters and integrate them into my already-existing ASP.NET project. None of the documentation or Google search results I have run today has adequately explained to me how to get these code fixes into my project. (In all fairness, I am quite new to ASP.NET and working with DLLs, so maybe I'm just dim.)

I will settle for a simple fix that will cure the "double-postback" problem I am having with the CreateUserWizard, thereby resulting in the "Please enter another user name" problem every time I create a new user account. (Fortunately, the new user does appear in the DB.) I found code snippets that purport to fix this wizard, but no instructions on where to put the code -- or I wasn't able to find the file(s) where the code fixes belong.

On top of that, I tried numerous times to join/sign on to www.asp.net forums, and my login information somehow got screwed up. So I can't even log in over there to ask questions.   >:-(

All my other membership wizards work fine, and I spent a good couple of weeks customizing them to be XHTML/CSS-compliant, not to mention a fair amount of server and client-side scripting to get the forms to behave as user-friendly as possible (e.g., setting focus to the first text field on the form; auto-displaying certain fields based on the answers provided in others; re-populating profile info for current user, etc.). They all work beautifully.....except for this silly control @ successful completion of a new user.

Below is my CreateUserWizard code (complete w/customized template code):

        <asp:CreateUserWizard ID="CreateUserWizard1" runat="server"
            ContinueDestinationPageUrl="~/Default.aspx" 
            DuplicateUserNameErrorMessage="Please enter a different user ID." 
            UserNameLabelText="User ID:" 
            UserNameRequiredErrorMessage="User ID is required.">
            <MailDefinition BodyFileName="~/App_Data/SignUpConfirmation.txt" 
                Subject="Your new account at our website">
            </MailDefinition>
            <WizardSteps>
                <asp:CreateUserWizardStep ID="CreateUserWizardStep1" runat="server" >
                    <ContentTemplate>
                        <div class="topbottompadding">Please complete the following fields.</div>
                        <table>
                            <tr>
                                <td class="right"><span class="bold"><asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName">User ID:</asp:Label></span></td>
                                <td>
                                    <asp:TextBox ID="UserName" runat="server" Width="150" TabIndex="1"></asp:TextBox>
                                    <asp:RequiredFieldValidator ID="UserNameRequired" runat="server" ControlToValidate="UserName" ErrorMessage="&nbsp;&nbsp;required" ForeColor="" CssClass="boldred" ToolTip="User ID is required." ValidationGroup="CreateUserWizard1"></asp:RequiredFieldValidator>
                                </td>
                            </tr>
                            <tr>
                                <td class="right"><span class="bold"><asp:Label ID="PasswordLabel" runat="server" AssociatedControlID="Password">Password:</asp:Label></span></td>
                                <td>
                                    <asp:TextBox ID="Password" runat="server" TextMode="Password" Width="150" TabIndex="2"></asp:TextBox>
                                    <asp:RequiredFieldValidator ID="PasswordRequired" runat="server" ControlToValidate="Password" ErrorMessage="&nbsp;&nbsp;required" ForeColor="" CssClass="boldred" ToolTip="Password is required." ValidationGroup="CreateUserWizard1"></asp:RequiredFieldValidator>
                                </td>
                            </tr>
                            <tr>
                                <td class="right"><span class="bold"><asp:Label ID="ConfirmPasswordLabel" runat="server" AssociatedControlID="ConfirmPassword">Confirm Password:</asp:Label></span></td>
                                <td>
                                    <asp:TextBox ID="ConfirmPassword" runat="server" TextMode="Password" Width="150" TabIndex="3"></asp:TextBox>
                                    <asp:RequiredFieldValidator ID="ConfirmPasswordRequired" runat="server" ControlToValidate="ConfirmPassword" ErrorMessage="&nbsp;&nbsp;required" ForeColor="" CssClass="boldred" ToolTip="Confirm Password is required." ValidationGroup="CreateUserWizard1"></asp:RequiredFieldValidator>
                                </td>
                            </tr>
                            <tr>
                                <td class="right"><span class="bold"><asp:Label ID="EmailLabel" runat="server" AssociatedControlID="Email">E-mail:</asp:Label></span></td>
                                <td>
                                    <asp:TextBox ID="Email" runat="server" Width="300" TabIndex="4"></asp:TextBox>
                                    <asp:RequiredFieldValidator ID="EmailRequired" runat="server" ControlToValidate="Email" ErrorMessage="&nbsp;&nbsp;required" ForeColor="" CssClass="boldred" ToolTip="E-mail is required." ValidationGroup="CreateUserWizard1"></asp:RequiredFieldValidator>
                                </td>
                            </tr>
                            <tr>
                                <td class="right"><span class="bold"><asp:Label ID="QuestionLabel" runat="server" AssociatedControlID="Question">Security Question:</asp:Label></span></td>
                                <td>
                                    <asp:TextBox ID="Question" runat="server" Width="300" TabIndex="5"></asp:TextBox>
                                    <asp:RequiredFieldValidator ID="QuestionRequired" runat="server" ControlToValidate="Question" ErrorMessage="&nbsp;&nbsp;required" ForeColor="" CssClass="boldred" ToolTip="Security question is required." ValidationGroup="CreateUserWizard1"></asp:RequiredFieldValidator>
                                </td>
                            </tr>
                            <tr>
                                <td class="right"><span class="bold"><asp:Label ID="AnswerLabel" runat="server" AssociatedControlID="Answer">Security Answer:</asp:Label></span></td>
                                <td>
                                    <asp:TextBox ID="Answer" runat="server" Width="300" TabIndex="6"></asp:TextBox>
                                    <asp:RequiredFieldValidator ID="AnswerRequired" runat="server" ControlToValidate="Answer" ErrorMessage="&nbsp;&nbsp;required" ForeColor="" CssClass="boldred" ToolTip="Security answer is required." ValidationGroup="CreateUserWizard1"></asp:RequiredFieldValidator>
                                </td>
                            </tr>
                        </table>
                        <div class="topbottompadding">
                            <asp:CompareValidator ID="PasswordCompare" runat="server" 
                                ControlToCompare="Password" ControlToValidate="ConfirmPassword" 
                                Display="Dynamic" ErrorMessage="The Password and Confirmation Password must match." 
                                ValidationGroup="CreateUserWizard1" CssClass="boldred" ForeColor=""></asp:CompareValidator>
                        </div>
                        <div class="topbottompadding"><span class="boldred"><asp:Literal ID="ErrorMessage" runat="server" EnableViewState="False"></asp:Literal></span></div>
                    </ContentTemplate>
                </asp:CreateUserWizardStep>
                <asp:CompleteWizardStep ID="CreateUserWizardStep2" runat="server" >
                    <ContentTemplate>
                        <div class="topbottompadding"><span class="boldred">Your account has been successfully created.</span></div>
                        <div class="topbottompadding"><asp:Button ID="ContinueButton" runat="server" CausesValidation="False" CommandName="Continue" Text="Continue" ValidationGroup="CreateUserWizard1" CssClass="button" TabIndex="7" /></div>
                    </ContentTemplate>
                </asp:CompleteWizardStep>
            </WizardSteps>
        </asp:CreateUserWizard>

 

...which results in the following, rather elegant and fairly straightforward -- though admittedly not totally minimal, but still manageable -- XHTML/CSS code (compared to the hideous alternative):

<div class="AspNet-CreateUserWizard" id="ctl00_mainContent_CreateUserWizard1">
                        <div class="topbottompadding">Please complete the following fields.</div>
                        <table>
                            <tr>
                                <td class="right"><span class="bold"><label for="ctl00_mainContent_CreateUserWizard1_CreateUserStepContainer_UserName" id="ctl00_mainContent_CreateUserWizard1_CreateUserStepContainer_UserNameLabel">User ID:</label></span></td>
                                <td>
                                    <input name="ctl00$mainContent$CreateUserWizard1$CreateUserStepContainer$UserName" type="text" id="ctl00_mainContent_CreateUserWizard1_CreateUserStepContainer_UserName" tabindex="1" style="width:150px;" />
                                    <span id="ctl00_mainContent_CreateUserWizard1_CreateUserStepContainer_UserNameRequired" title="User ID is required." class="boldred" style="visibility:hidden;">  required</span>
                                </td>
                            </tr>
                            <tr>
                                <td class="right"><span class="bold"><label for="ctl00_mainContent_CreateUserWizard1_CreateUserStepContainer_Password" id="ctl00_mainContent_CreateUserWizard1_CreateUserStepContainer_PasswordLabel">Password:</label></span></td>
                                <td>
                                    <input name="ctl00$mainContent$CreateUserWizard1$CreateUserStepContainer$Password" type="password" id="ctl00_mainContent_CreateUserWizard1_CreateUserStepContainer_Password" tabindex="2" style="width:150px;" />
                                    <span id="ctl00_mainContent_CreateUserWizard1_CreateUserStepContainer_PasswordRequired" title="Password is required." class="boldred" style="visibility:hidden;">  required</span>
                                </td>
                            </tr>
                            <tr>
                                <td class="right"><span class="bold"><label for="ctl00_mainContent_CreateUserWizard1_CreateUserStepContainer_ConfirmPassword" id="ctl00_mainContent_CreateUserWizard1_CreateUserStepContainer_ConfirmPasswordLabel">Confirm Password:</label></span></td>
                                <td>
                                    <input name="ctl00$mainContent$CreateUserWizard1$CreateUserStepContainer$ConfirmPassword" type="password" id="ctl00_mainContent_CreateUserWizard1_CreateUserStepContainer_ConfirmPassword" tabindex="3" style="width:150px;" />
                                    <span id="ctl00_mainContent_CreateUserWizard1_CreateUserStepContainer_ConfirmPasswordRequired" title="Confirm Password is required." class="boldred" style="visibility:hidden;">  required</span>
                                </td>
                            </tr>
                            <tr>
                                <td class="right"><span class="bold"><label for="ctl00_mainContent_CreateUserWizard1_CreateUserStepContainer_Email" id="ctl00_mainContent_CreateUserWizard1_CreateUserStepContainer_EmailLabel">E-mail:</label></span></td>
                                <td>
                                    <input name="ctl00$mainContent$CreateUserWizard1$CreateUserStepContainer$Email" type="text" id="ctl00_mainContent_CreateUserWizard1_CreateUserStepContainer_Email" tabindex="4" style="width:300px;" />
                                    <span id="ctl00_mainContent_CreateUserWizard1_CreateUserStepContainer_EmailRequired" title="E-mail is required." class="boldred" style="visibility:hidden;">  required</span>
                                </td>
                            </tr>
                            <tr>
                                <td class="right"><span class="bold"><label for="ctl00_mainContent_CreateUserWizard1_CreateUserStepContainer_Question" id="ctl00_mainContent_CreateUserWizard1_CreateUserStepContainer_QuestionLabel">Security Question:</label></span></td>
                                <td>
                                    <input name="ctl00$mainContent$CreateUserWizard1$CreateUserStepContainer$Question" type="text" id="ctl00_mainContent_CreateUserWizard1_CreateUserStepContainer_Question" tabindex="5" style="width:300px;" />
                                    <span id="ctl00_mainContent_CreateUserWizard1_CreateUserStepContainer_QuestionRequired" title="Security question is required." class="boldred" style="visibility:hidden;">  required</span>
                                </td>
                            </tr>
                            <tr>
                                <td class="right"><span class="bold"><label for="ctl00_mainContent_CreateUserWizard1_CreateUserStepContainer_Answer" id="ctl00_mainContent_CreateUserWizard1_CreateUserStepContainer_AnswerLabel">Security Answer:</label></span></td>
                                <td>
                                    <input name="ctl00$mainContent$CreateUserWizard1$CreateUserStepContainer$Answer" type="text" id="ctl00_mainContent_CreateUserWizard1_CreateUserStepContainer_Answer" tabindex="6" style="width:300px;" />
                                    <span id="ctl00_mainContent_CreateUserWizard1_CreateUserStepContainer_AnswerRequired" title="Security answer is required." class="boldred" style="visibility:hidden;">  required</span>
                                </td>
                            </tr>
                        </table>
                        <div class="topbottompadding">
                            <span id="ctl00_mainContent_CreateUserWizard1_CreateUserStepContainer_PasswordCompare" class="boldred" style="display:none;">The Password and Confirmation Password must match.</span>
                        </div>
                        <div class="topbottompadding"><span class="boldred"></span></div>
                    
	<div class="AspNet-CreateUserWizard-CreateUserButtonPanel">
		<input type="submit" value="Create User" id="ctl00_mainContent_CreateUserWizard1__CustomNav0_StepNextButtonButton" name="ctl00$mainContent$CreateUserWizard1$__CustomNav0$StepNextButtonButton" onclick="WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ctl00$mainContent$CreateUserWizard1$__CustomNav0$StepNextButtonButton&quot;, &quot;&quot;, true, &quot;CreateUserWizard1&quot;, &quot;&quot;, false, true))" />
	</div>
</div>

Again, everything about this form works except "Please enter another user name", even though the user name didn't exist previously. The new user is, however, successfully added to the database. Also, trying a simple, non-customized CreateUserWizard got me the exact same result. So I know it's not due to my customizations above.

The problem only went away if I commented out the CSS adapter tag in the browser file or removed the browser file altogether.....but then I'd be stuck with the ugly, non XHTML/CSS/accessibility-compliant bloatware code -- not to mention much of my CSS formatting goes away from the web form, even though I specified CssClasses everywhere. So disabling the CSS adapter is not an acceptable solution.

Thank you in advance for your assistance. I am hoping maybe this is simpler than it has appeared to me all day, and there's just some minor detail I've missed that could shine that lightbulb for me.

 ~ Eddie McHam