Click here to Skip to main content
15,896,063 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
Hi,

I have a page which contains list of Products displayed based on catagories...

When i select catagory in left side menu i have displayed the products based on that selected catagory but in the url the catagiry id has not been changed.i need to change the catagory id in the url of that page...

The design code looks like this....


<asp:DataList runat="server" OnItemDataBound="dlProducts_ItemDataBound" ID="dlProducts"
                               RepeatColumns="4" RepeatDirection="Horizontal">
                               <ItemTemplate>
                                   <li>
                                       <asp:HiddenField runat="server" ID="hdnItemID" Value='<%# DataBinder.Eval(Container.DataItem, "ItemID")%>' />
                                       <asp:HiddenField ID="hdndCatlog" runat="server" />
                                       <div class="productsimg"  önclick="SelectProduct(<%# DataBinder.Eval(Container.DataItem, "ItemID")%>,this);">
                                           <img src='<%#((string[]) DataBinder.Eval(Container.DataItem, "ThumbnailPaths"))[0]%>' />
                                       </div>
                                       <div class="productscost">
                                           <div class="productsname">
                                               <h6>
                                                   <%# DataBinder.Eval(Container.DataItem, "StockNo")%></h6>
                                               <p>
                                                   $<asp:Label runat="server" ID="lblItemPrice"></asp:Label></p>
                                           </div>
                                           <a href='java<!-- no -->script:AddItemtoCart(<%# DataBinder.Eval(Container.DataItem, "ItemID")%>)'>
                                               <div class="addtocart">
                                                   Add to CART
                                               </div>
                                           </a>
                                       </div>
                                   </li>
                               </ItemTemplate>
                           </asp:DataList>




When i click cataory name in this i have displayed products(items) ..code look like this..





protected void dlCategories_ItemCommand(object sender, DataListCommandEventArgs e)
      {
          if (e.CommandName == "SELECT")
          {
              CtlId = int.Parse(e.CommandArgument.ToString());
              Session["CtlId"] = CtlId;
              BindItems(CtlId);
          }
      }


Url like this .....

http://localhost:58698/Products/37[^]


when i click another catagory the catagory id has not changing in the above url..

Please help me on this issue..

Thanks.
Posted

1 solution

Try this. it works good :)

aspx page
ASP.NET
<div>
       <div style="padding:10px; width: 200px; height:500px; background-color:#2C956C; float: left">
           <asp:label id="Label1" runat="server" text="Categories" font-bold="True" xmlns:asp="#unknown">
               Font-Size="16pt" Font-Underline="True" ForeColor="White"></asp:label>
           <br />
           <asp:dropdownlist id="DropDownListCategories" runat="server" xmlns:asp="#unknown">
               AutoPostBack="True" Height="30px"
               onselectedindexchanged="DropDownListCategories_SelectedIndexChanged"
               Width="100%">
           </asp:dropdownlist>
       </div>
       <div style="width: 800px; height:499px; padding:10px; background-color: #BEAA6C; float: left">
           <asp:gridview id="ProductOfCategory" runat="server" backcolor="White" xmlns:asp="#unknown">
               BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" CellPadding="4"
               ForeColor="Black" GridLines="Horizontal">
               <footerstyle backcolor="#CCCC99" forecolor="Black" />
               <HeaderStyle BackColor="#333333" Font-Bold="True" ForeColor="White" />
               <pagerstyle backcolor="White" forecolor="Black" horizontalalign="Right" />
               <SelectedRowStyle BackColor="#CC3333" Font-Bold="True" ForeColor="White" />
               <sortedascendingcellstyle backcolor="#F7F7F7" />
               <sortedascendingheaderstyle backcolor="#4B4B4B" />
               <sorteddescendingcellstyle backcolor="#E5E5E5" />
               <sorteddescendingheaderstyle backcolor="#242121" />
           </asp:gridview>
       </div>
   </div>


CodeBehind
C#
protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                GetCategories();
                
                int ID = 0;
                int.TryParse(Request.QueryString["categoryID"], out ID);
                if (ID > 0)
                {
                     GetProdutByCategory(ID);
                }
            }
        }

        private void GetProdutByCategory(int CategoryID)
        {
            SqlDataAdapter da = new SqlDataAdapter("Select ProductName,UnitPrice,UnitsInStock from Products Where CategoryID=@id", "Server=.;Database=NorthWind;uid=sa;pwd=1");
            da.SelectCommand.Parameters.AddWithValue("@id", CategoryID);
            DataTable dt = new DataTable();
            da.Fill(dt);
            ProductOfCategory.DataSource = dt;
            ProductOfCategory.DataBind();
        }

        private void GetCategories()
        {
            SqlDataAdapter da = new SqlDataAdapter("Select * from Categories", "Server=.;Database=NorthWind;uid=sa;pwd=1");
            DataTable dt = new DataTable();
            da.Fill(dt);
            DropDownListCategories.DataSource = dt;
            DropDownListCategories.DataTextField = "CategoryName";
            DropDownListCategories.DataValueField = "CategoryID";
            DropDownListCategories.DataBind();

           
        }

        protected void DropDownListCategories_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (DropDownListCategories.SelectedIndex != -1)
            {
                Response.Redirect("WebForm2.aspx?categoryID=" + DropDownListCategories.SelectedValue);
            }
        }
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900