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

RadGrid_ItemDataBound() Event ->Binding RadGridDropDown

0 Answers 94 Views
Grid
This is a migrated thread and some comments may be shown as answers.
JazzBox
Top achievements
Rank 1
JazzBox asked on 30 Oct 2017, 07:24 PM

I've seen a ton of questions on this, however no simple explanations why this is occurring or what the solution to the problem is.

We've got a Batch Edit Update Grid that I originally had a RadComboBox in that was working fine until I found that keyboard navigation was screwing up the keyboard flow and saw that it was recommended to switch to a RadDropDown control, so I did, which is in a GridTemplateColumn similar to this:

<telerik:RadGrid ID="RadGrdActionInputs" runat="server" Width="900px"  OnNeedDataSource="RadGrdActionGroupInputs_NeedDataSource"
AutoGenerateColumns="False" RenderMode="Lightweight" AllowSorting="True"
OnItemDataBound="RadGrdActionInputs_ItemDataBound"
oninsertcommand="RadGrdActionInputs_InsertCommand"
onupdatecommand="RadGrdActionInputs_UpdateCommand"
ondeletecommand="RadGrdActionInputs_DeleteCommand"
oneditcommand="RadGrdActionInputs_EditCommand"
AutoGenerateEditColumn="True" >
<GroupingSettings CollapseAllTooltip="Collapse all groups"></GroupingSettings>
 
<MasterTableView CommandItemDisplay="TopAndBottom" DataKeyNames="ID" EditMode="Batch">
<BatchEditingSettings EditType="Row" />
<CommandItemSettings ShowCancelChangesButton="true" ShowRefreshButton="false" />
 
....
 
<telerik:GridTemplateColumn HeaderText="Data Point" DataField="DataPointID" HeaderStyle-Width="500px">
    <ItemTemplate>
        <telerik:RadTextBox ID="RadTextBox1" runat="server" Width="150px"></telerik:RadTextBox>
    </ItemTemplate>
    <EditItemTemplate>
        <telerik:RadDropDownList RenderMode="Lightweight" ID="ddDataPointList" runat="server" Width="300px">
        </telerik:RadDropDownList>
    </EditItemTemplate>
    <HeaderStyle Width="500px"></HeaderStyle>
</telerik:GridTemplateColumn>

 

In the examples and the problems/posts that I have seen, they all recommend checking the e.item type in the ItemDataBound event.  If the e.item is a GridDataItem then bind a label, else if it's a GridEditableItem bind the dropdown, IE:

protected void RadGrdActionInputs_ItemDataBound(object sender, GridItemEventArgs e)
{
    //get combobox data for drop down.
    DataPointsModel dataPointsModel = ConfigurationController.GetAllDataPoints();
     
    try {
        if (e.Item is GridDataItem)
        {
            GridDataItem item = (GridDataItem)e.Item;
 
            RadLabel lblActionGroupType = item.FindControl("lblDataPoint") as RadLabel;
 
            //get value for ActionGroupTypeID
            string val = DataBinder.Eval(item.DataItem, "DataPointID").ToString();
 
            
        }
        if (e.Item is GridEditableItem && e.Item.IsInEditMode)
        {
            GridEditableItem item = e.Item as GridEditableItem;
            RadDropDownList rddl = item.FindControl("ddDataPointList2") as RadDropDownList;
            BindRadDropDownDataList("I", rddl, "Name", "ID");
        }
    }
    catch {}
}

 

Problem is, this code never gets called:

if (e.Item is GridEditableItem && e.Item.IsInEditMode)
        {
            GridEditableItem item = e.Item as GridEditableItem;
            RadDropDownList rddl = item.FindControl("ddDataPointList2") as RadDropDownList;
            BindRadDropDownDataList("I", rddl, "Name", "ID");
        }

 

I'm pulling my hair out on this one..

 

 

No answers yet. Maybe you can help?

Tags
Grid
Asked by
JazzBox
Top achievements
Rank 1
Share this question
or