HOW TO GET VALUES IN DROPDOWNLIST BOUNDED WITHIN A GRIDVIEW?

Goti Bandu

Total Post:119

Points:835
Posted by  Goti Bandu
 1418  View(s)
Ratings:
Rate this:

Inside gridview a dropdownlist is there

 

<asp:TemplateField HeaderText="Quantity">

    <ItemTemplate>

        <asp:DropDownList ID="quantity" runat="server" DataValueField="ItemID" DataTextField="Quantity">

        </asp:DropDownList>

    </ItemTemplate>

</asp:TemplateField>

for each itemid there is some numeric value in Quantity field of Database Table i want that this dropdown must contain the values from 1 to quantity.DataTextField for all the items present in the cart

 

the procedure by which gridview is bound is

 

create proc [dbo].[prcItemsinCart](@CartID int)

as

    select distinct ct.Price,ct.Quantity,ct.ItemID,

           ct.CartID,ct.ProductID,p.ProductName,

           isnull((  select top 1 convert(varchar,PhotoID,10) + '.' + ExtName

                 from ProductPhoto

                 where ProductID = ct.ProductID ),'NoImage.jpg'

           ) as Product,

           ( Select Price*Quantity

             from CartItems

             where CartID=ct.CartID and ProductID=ct.ProductID

           ) as SubTotal

    from CartItems as ct

    inner join ProductInfo as p on ct.ProductID=p.ProductID

    inner join ProductPhoto as pp on ct.ProductID=pp.ProductID

    where ct.CartID=@CartID

  1. Sumit Kesarwani

    Post:378

    Points:2694
    Re: how to get values in dropdownlist bounded within a gridview?

    Hi Goti, 


    I would add a HiddenField in the TemplateField to hold the CartID, I will use the CartID in the code. My Markup should look like:

     

    <asp:TemplateField HeaderText="Quantity">

        <ItemTemplate> 

            <asp:HiddenField ID="hdnId" runat="server" value='<%#Eval("CartID") %>'></asp:HiddenField>                           

            <asp:DropDownList ID="quantity" runat="server" DataValueField="ItemID" DataTextField="Quantity">

            </asp:DropDownList>

        </ItemTemplate>

    </asp:TemplateField>

    In the code, in GridView's RowDataBound I am finding the DropDownList and HiddenField, running a Sql Query to bring my expected data, and binding them to my DropdownList:

     

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)

    {

        if (e.Row.RowType == DataControlRowType.DataRow)

        {

            DropDownList quantity = e.Row.FindControl("quantity") as DropDownList;

            HiddenField hdnId = e.Row.FindControl("hdnId") as HiddenField;

     

            if (quantity != null && hdnId != null)

            {

                string queryString = String.Format("SELECT ItemID, Quantity FROM  CartItems  WHERE CartID= {0}", hdnId.Value);

     

                //MyConnectionString is your connection string in web.config

                using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["MyConnectionString"].ToString()))

                {

                    SqlCommand command = new SqlCommand(queryString, connection);

                    connection.Open();

                    SqlDataReader reader = command.ExecuteReader();

                    quantity.DataSource = reader;

                    quantity.DataValueField = "ItemID";

                    quantity.DataTextField = "Quantity";

                    quantity.DataBind();              

                }

            }       

        }

    }

Answer

NEWSLETTER

Enter your email address here always to be updated. We promise not to spam!