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(ClientCod e, 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
'This method gets me the data to the TVData datatable variable
TVData = objSQL.GetHeader(ClientCod
'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
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
Thanks
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
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. XXXXItemEv entArgs e)
{
if(e.Item.ItemType == ListItemType.AlternatingIt em || e.Item.ItemType == ListItemType.Item)
{
lstFacility = (DropDownList) e.Item.FindControl("ddFaci lity");
lstFacility.DataSource = htFacility;
lstFacility.DataTextField = "value";
lstFacility.DataValueField = "key";
lstFacility.DataBind();
}
}
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.
{
if(e.Item.ItemType == ListItemType.AlternatingIt
{
lstFacility = (DropDownList) e.Item.FindControl("ddFaci
lstFacility.DataSource = htFacility;
lstFacility.DataTextField = "value";
lstFacility.DataValueField
lstFacility.DataBind();
}
}
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="cm
</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