This is a migrated thread and some comments may be shown as answers.

Combobox inside radgrid

3 Answers 171 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Eva
Top achievements
Rank 1
Eva asked on 07 Apr 2012, 12:05 AM
Here is my code, combobox returns empty

 

 

protected void RadComboBox1_ItemsRequested(object sender, RadComboBoxItemsRequestedEventArgs e)

 

{

 

 

DataSet dt = DhsBasePage.getProxyDataService().GetProviderType(); //call data layer function to get an agency datatable

 

 

 

RadComboBox comboBox = (RadComboBox)sender;

 

// Clear the default Item that has been re-created from ViewState at this point.

comboBox.Items.Clear();

 

 

foreach (DataRow row in dt.Tables[0].Rows)

 

{

 

 

RadComboBoxItem item = new RadComboBoxItem();

 

item.Text = row[

 

"Abbreviation"].ToString();

 

item.Value = row[

 

"ProviderTypeID"].ToString();

 

item.Attributes.Add(

 

"Description", row["Description"].ToString());

 

comboBox.Items.Add(item);

item.DataBind();

}

}

 

 

protected void OnSelectedIndexChangedHandler(object sender, RadComboBoxSelectedIndexChangedEventArgs e)

 

{

Session[

 

"ProviderTypeID"] = e.Value;

 

}

 

 

protected void OnItemDataBoundHandler(object sender, GridItemEventArgs e)

 

{

 

 

if (e.Item.IsInEditMode)

 

{

 

 

GridEditableItem item = (GridEditableItem)e.Item;

 

 

 

if (!(e.Item is IGridInsertItem))

 

{

 

 

RadComboBox combo = (RadComboBox)item.FindControl("RadComboBox1");

 

 

 

RadComboBoxItem selectedItem = new RadComboBoxItem();

 

selectedItem.Text = ((

 

DataRowView)e.Item.DataItem)["Abbreviation"].ToString();

 

selectedItem.Value = ((

 

DataRowView)e.Item.DataItem)["ProviderTypeID"].ToString();

 

selectedItem.Attributes.Add(

 

"Description", ((DataRowView)e.Item.DataItem)["Description"].ToString());

 

combo.Items.Add(selectedItem);

selectedItem.DataBind();

Session[

 

"ProviderTypeID"] = selectedItem.Value;

 

}

}

}


 

<

 

 

telerik:GridTemplateColumn UniqueName="ProviderType" HeaderText="Provider Type" SortExpression="ProviderType"

 

 

 

 

 

 

 

ItemStyle-Width="400px">

 

 

 

 

 

 

 

<FooterTemplate>

 

 

 

 

 

Template footer

 

</FooterTemplate>

 

 

 

 

 

 

 

<FooterStyle VerticalAlign="Middle" HorizontalAlign="Center" />

 

 

 

 

 

 

 

 

<ItemTemplate>

 

 

 

 

 

 

 

<ul>

 

 

 

 

 

 

 

<li class="col1">

 

 

 

 

 

<%

 

# DataBinder.Eval(Container, "Abbreviation")%>

 

 

 

</li>

 

 

 

 

 

 

 

<li class="col2">

 

 

 

 

 

<%

 

# DataBinder.Eval(Container, "Attributes['Description']")%></li>

 

 

 

 

 

 

 

</ul>

 

 

 

 

 

 

 

</ItemTemplate>

 

 

 

 

 

 

 

<EditItemTemplate>

 

 

 

 

 

 

 

<telerik:RadComboBox runat="server" ID="RadComboBox1" EnableLoadOnDemand="True" DataTextField="Abbreviation"

 

 

 

 

 

 

 

OnItemsRequested="RadComboBox1_ItemsRequested" DataValueField="ProviderTypeId" AutoPostBack="true"

 

 

 

 

 

 

 

HighlightTemplatedItems="true" Height="140px" Width="220px" DropDownWidth="420px"

 

 

 

 

 

 

 

OnSelectedIndexChanged="OnSelectedIndexChangedHandler" >

 

 

 

<ItemTemplate>

 

 

 

 

 

<%

 

#DataBinder.Eval(Container.DataItem, "Abbreviation")%>

 

<%

 

#DataBinder.Eval(Container.DataItem, "Description")%>

 

 

 

 

</ItemTemplate>

 

 

 

 

 

 

 

</telerik:RadComboBox>

 

 

 

 

 

 

 

</EditItemTemplate>

 

 

 

 

 

 

 

</telerik:GridTemplateColumn>

 


What i'm missing here? need help ASAP.
Thanks.
Eva

3 Answers, 1 is accepted

Sort by
0
fahd
Top achievements
Rank 1
answered on 07 Apr 2012, 09:05 PM
It's not clear in what circumstance you're using the Combobox, is it when you edit/insert a row? Are you using GridDropDownColumn or GridTemplateColumn? Can you post some markup please?

Thanks,
Fahd
0
Eva
Top achievements
Rank 1
answered on 09 Apr 2012, 05:38 PM
When i edit/insert radgrid item, the combobox should populate.

I used GridDropDownColumn to show Abbreviation, now i'm trying to modify to show Abbreviation, description.
0
Princy
Top achievements
Rank 2
answered on 11 Apr 2012, 06:35 AM
Hi Eva,

I am not sure about your requirement, I guess you need to populate a RadcomboBox in Edit/Insert mode. Here is the code snippet i tried to populate both  RadComboBox and GridDropDownColumn.

ASPX:
<telerik:GridTemplateColumn>
  <EditItemTemplate>
    <telerik:RadComboBox ID="RadComboBox1" runat="server" EnableLoadOnDemand="true" AutoPostBack="true"
     OnItemsRequested="RadComboBox1_ItemsRequested">
    </telerik:RadComboBox>
  </EditItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridDropDownColumn UniqueName="DropDown"  HeaderText="dropdown"  DropDownControlType="RadComboBox"></telerik:GridDropDownColumn>

C#:
//Populating RadComboBox
protected void RadComboBox1_ItemsRequested(object sender, RadComboBoxItemsRequestedEventArgs e)
{
  SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ToString());
  String s = "select FirstName,EmployeeID from Employees";
  con.Open();
  SqlDataAdapter dr = new SqlDataAdapter(s, con);
  DataTable dt = new DataTable();
  dr.Fill(dt);
  con.Close();
  RadComboBox combo = (RadComboBox)sender;
  combo.DataSource = dt;
  combo.DataTextField = "FirstName";
  combo.DataValueField = "EmployeeID";
  combo.DataBind();
}
 
//Populating GridDropDownColumn
protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
{
 if (e.Item is GridEditableItem && e.Item.IsInEditMode)
 {
   GridEditableItem item = (GridEditableItem)e.Item;
   RadComboBox RadComboBox1 = (RadComboBox)item["DropDown"].Controls[0];
   RadComboBox1.DataSourceID = "SqlDataSource1";
   RadComboBox1.DataTextField = "FirstName";
   RadComboBox1.DataValueField ="EmployeeID";
   RadComboBox1.DataBind();
 }
}

Hope this helps.
Thanks,
Princy.




Tags
Grid
Asked by
Eva
Top achievements
Rank 1
Answers by
fahd
Top achievements
Rank 1
Eva
Top achievements
Rank 1
Princy
Top achievements
Rank 2
Share this question
or