Link to home
Start Free TrialLog in
Avatar of smkkaleem
smkkaleem

asked on

How to programmatically bind data to a dropdown list (combobox) in a gridview control for ASP 2.0

How can I programmatically bind data to a dropdown list (combobox) in a gridview control for ASP 2.0. I have a dataset that I am using to bind data to a gridview control that has all columns as labels. I am using the following code to bind my data:

'This method gets me the data to the TVData datatable variable

TVData = objSQL.GetHeader(ClientCode, DivisionCode, Market, Year, Month, MediaType)

'Here I am binding my datatable to my gridview control            

gvTV.DataSource = TVData
gvTV.DataBind()

As a  result I see all my label columns in the gridview populated with the data. However my column containing the combo box is not populated. Any ideas or code, is there any event where you have to write that code?

Thanks in advance
Avatar of aki4u
aki4u

Hi,

You need to set few fields in combobox so it gets populated, something like this:

<asp:TemplateColumn HeaderText="HeaderText">
     <ItemTemplate>          
          <asp:DropDownList runat="server" id="cmbID" AutoPostBack="true" OnSelectedIndexChanged="cmb_SelectedIndexChanged" DataSource='<%# GetCmbDataSource() %>' DataTextField="cmbTextField" DataValueField="cmbValueField" >
               </asp:DropDownList>
        </ItemTemplate>
</asp:TemplateColumn>

and of course implement in codebehind "GetCmbDataSource "

OR


Look here:
https://www.experts-exchange.com/questions/21271322/Dropdown-in-datagrid.html

https://www.experts-exchange.com/questions/21281459/Datagrid-with-dropdown-list.html
Avatar of smkkaleem

ASKER

I  tried to follow the first link, does not work. The second link talks about the datgrid control for VS 1.1.  My question is regarding the gridview control in ASP.NET 2.0. Any more examples?

Thanks
ASKER CERTIFIED SOLUTION
Avatar of aki4u
aki4u

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Hi,


I think what you need to do is to  grab that control on the Item Creadted event of  the gridview or datagrid. Make sure that you get it while it is not created in the header or the footer. Once you find it you can bind to it in the event.
It will be something like this:

 private void  R_ItemCreated(object sender, System.Web.UI.WebControls.XXXXItemEventArgs e)
            {

                  if(e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
                  {
                              lstFacility = (DropDownList) e.Item.FindControl("ddFacility");
                              lstFacility.DataSource = htFacility;
                              lstFacility.DataTextField = "value";
                              lstFacility.DataValueField = "key";
                              lstFacility.DataBind();
                                             
                  }
                                }