customized category grid throwing error.

For general questions and discussions specific to the AbleCommerce 7.0 Asp.Net product.
Post Reply
ZLA
Commodore (COMO)
Commodore (COMO)
Posts: 496
Joined: Fri Mar 13, 2009 2:55 pm

customized category grid throwing error.

Post by ZLA » Mon Mar 08, 2010 4:50 pm

We have a category product grid which has been customized with only name and cost sorts. If a user sorts by name descending (Z -> A) and then selects page 2 from the bottom paging control, we get an error: Cannot have multiple items selected in a DropDownList. Here's the stack trace:

Code: Select all

HttpException (0x80004005): Cannot have multiple items selected in a DropDownList.]
   System.Web.UI.WebControls.DropDownList.VerifyMultiSelect() +106
   System.Web.UI.WebControls.ListControl.RenderContents(HtmlTextWriter writer) +8555704
   System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer) +32
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +134
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +19
   System.Web.UI.Control.Render(HtmlTextWriter writer) +10
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +134
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +19
   System.Web.UI.Control.Render(HtmlTextWriter writer) +10
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +134
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +19
   System.Web.UI.UpdatePanel.RenderChildren(HtmlTextWriter writer) +238
   System.Web.UI.Control.Render(HtmlTextWriter writer) +10
   System.Web.UI.UpdatePanel.Render(HtmlTextWriter writer) +35
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +134
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +19
   System.Web.UI.Control.Render(HtmlTextWriter writer) +10
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +134
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +19
   System.Web.UI.WebControls.WebControl.RenderContents(HtmlTextWriter writer) +10
   System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer) +32
   CommerceBuilder.Web.UI.WebControls.WebParts.ScriptletPart.Render(HtmlTextWriter writer) +27
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   CommerceBuilder.Web.UI.WebControls.WebParts.ScriptletZone.Render(HtmlTextWriter writer) +164
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +134
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +19
   System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer) +8676409
   System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer) +32
   System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter output) +51
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99
   System.Web.UI.HtmlControls.HtmlForm.RenderControl(HtmlTextWriter writer) +40
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +134
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +19
   System.Web.UI.Control.Render(HtmlTextWriter writer) +10
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +134
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +19
   System.Web.UI.Page.Render(HtmlTextWriter writer) +29
   CommerceBuilder.Web.UI.AbleCommercePage.Render(HtmlTextWriter writer) +121
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1266
I haven't been able to step through the code to determine where this is occurring but it seems to be in the AC provided code, not our customizations. Looking at the paging control, it is just a link to a specific page of a category. It isn't using the dropdownlist directly. I saw one post that said this was a bug when it occurred during the checkout process but ours is occurring just in the basic store side.

I would appreciate any assistance or help.

Thank you.

User avatar
mazhar
Master Yoda
Master Yoda
Posts: 5084
Joined: Wed Jul 09, 2008 8:21 am
Contact:

Re: customized category grid throwing error.

Post by mazhar » Tue Mar 09, 2010 8:26 am

I don't think so that this problem is with gird. Have a look on the dropdown having sorting options. Make sure that your code is not trying to select more then one option same time. For example where you are trying to select item you should also unselect the old one as well.

ZLA
Commodore (COMO)
Commodore (COMO)
Posts: 496
Joined: Fri Mar 13, 2009 2:55 pm

Re: customized category grid throwing error.

Post by ZLA » Tue Mar 09, 2010 9:17 am

Hi Mazhar.

I'm pretty certain the only change we made was to the aspx file - we changed the number of asp:listitem entries. Since we only eliminated items and didn't add new items, I don't see where we would have to add extra code to unselect items. Also, the error occurs when we select a new page, which is just a link. The stack trace makes it look like the AC engine is involved.

I'm currently out of the office but I'll double check the code tonight / tomorrow. I appreciate the assistance.

User avatar
jmestep
AbleCommerce Angel
Posts: 8164
Joined: Sun Feb 29, 2004 8:04 pm
Location: Dayton, OH
Contact:

Re: customized category grid throwing error.

Post by jmestep » Tue Mar 09, 2010 1:46 pm

I know I've run into this before, but couldn't remember where. I think it was when I had set a selected on a list item and there was something in the code behind that also set it. Like I said, I don't remember exactly.
Judy Estep
Web Developer
jestep@web2market.com
http://www.web2market.com
708-653-3100 x209
New search report plugin for business intelligence:
http://www.web2market.com/Search-Report ... -P154.aspx

ZLA
Commodore (COMO)
Commodore (COMO)
Posts: 496
Joined: Fri Mar 13, 2009 2:55 pm

Re: customized category grid throwing error.

Post by ZLA » Wed Mar 10, 2010 12:20 pm

I was able to work around the error by changing the following from

Code: Select all

            if (!Page.IsPostBack)
            {
                //REGISTER THE PAGEVIEW
                CommerceBuilder.Reporting.PageView.RegisterCatalogNode(this.CategoryId, CatalogNodeType.Category);
                //INITIALIZE SEARCH CRITERIA ON FIRST VISIT
                HiddenPageIndex.Value = Request.QueryString["p"];
                string tempSort = Request.QueryString["s"];
                if (!string.IsNullOrEmpty(tempSort))
                {
                    ListItem item = SortResults.Items.FindByValue(tempSort);
                    if (item != null) item.Selected = true;
                 }
            }
to

Code: Select all

            if (!Page.IsPostBack)
            {
                //REGISTER THE PAGEVIEW
                CommerceBuilder.Reporting.PageView.RegisterCatalogNode(this.CategoryId, CatalogNodeType.Category);
                //INITIALIZE SEARCH CRITERIA ON FIRST VISIT
                HiddenPageIndex.Value = Request.QueryString["p"];
                string tempSort = Request.QueryString["s"];
                if (!string.IsNullOrEmpty(tempSort))
                {
                    ListItem item = SortResults.Items.FindByValue(tempSort);
                    // SG Customization - ZLA 2010-03-10 - fix "Cannot have multiple items selected in a DropDownList" error
                    //if (item != null) item.Selected = true;
                    if (item != null)
                    {
                       foreach (ListItem itm in SortResults.Items)
                       {
                          itm.Selected = false;
                       }
                       item.Selected = true;
                    }
                    // SG End Customization - ZLA 2010-03-10 - fix "Cannot have multiple items selected in a DropDownList" error
                 }
            }
in my category grid Page_Init routine. But the "incorrect" code was copied from standard AC logic and is present in the following files:
  • CategoryGridPage.ascx.cs
    CategoryGridPage2.ascx.cs
    CategoryGridPage3.ascx.cs
    CategoryGridPage4.ascx.cs
    CategoryListPage.ascx.cs
    SearchPage.ascx.cs
I didn't make any other direct changes to the SortResults dropdown logic so I'm still not sure why it's misbehaving and not in other places (such as the search page)

User avatar
mazhar
Master Yoda
Master Yoda
Posts: 5084
Joined: Wed Jul 09, 2008 8:21 am
Contact:

Re: customized category grid throwing error.

Post by mazhar » Wed Mar 10, 2010 12:40 pm

You may have some item marked selected in .aspx file as well, while on all other locations may be only code behind file is selecting sort items.

ZLA
Commodore (COMO)
Commodore (COMO)
Posts: 496
Joined: Fri Mar 13, 2009 2:55 pm

Re: customized category grid throwing error.

Post by ZLA » Wed Mar 10, 2010 1:57 pm

That was it. I had a default "select sort order" with selected=true.

Post Reply