0
votes

I'm using telerik grid, here I've placed UserControl at RadGrid inside GridTemplateColumn something Like this

    <telerik:GridTemplateColumn UniqueName="HardCoded" HeaderText="HardCoded" AllowFiltering="true"
                DataField="AccountDesc">
                <ItemTemplate>
                    <asp:Label ID="HardCoded" runat="server" Text='<%# Bind("HardCoded") %>'></asp:Label>
                </ItemTemplate>
                <EditItemTemplate>
                    <UserCtrl:UserCtrl runat="server" ID="lbl" />
                </EditItemTemplate>
                <InsertItemTemplate>
                  <UserCtrl:UserCtrl runat="server" ID="lbl" />                        
                </InsertItemTemplate>
                </telerik:GridTemplateColumn>

here

here is my UserControl Combo Code

<telerik:RadComboBox runat="server" ID="HardCoded" >
    <Items>
        <telerik:RadComboBoxItem Value="1" Text="Member" Selected="true" />
        <telerik:RadComboBoxItem Value="2" Text="Employee" />
        <telerik:RadComboBoxItem Value="3" Text="All" />
    </Items>
</telerik:RadComboBox>

inside databound Event I just want to set Selected Value if I press the Edit Button on grid. Here is my code of DataBound Event

  protected void RadGrid1_OnItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e)
        {
            if (e.Item.IsInEditMode)
            {
                   GridEditableItem editableItem = e.Item as GridEditableItem;
                    RadComboBox HardCoded = editableItem["HardCoded"].Controls[0] as RadComboBox;
                  // I've also tried 
 RadComboBox HardCoded = (RadComboBox)e.Item.FindControl("HardCoded");//it also didn't work

            }
    }

Here I always get the error of object reference not set to an instance of an object as It is unable to find My UserControl RadCombo

similarly if I want to get value inside of Insert event I'm unable to find my combo here is my code

    protected void RadGrid1_InsertCommand(object sender, Telerik.Web.UI.GridCommandEventArgs e)
    {
  string HardCoded = ((RadComboBox)ii["HardCoded"].FindControl("HardCoded")).SelectedValue;
   }

similar exception of object reference not set

1

1 Answers

0
votes

Instead of using GridEditableItem in the OnItemDataBound event handler, use GridEditFormItem as shown below:

protected void RadGrid1_OnItemDataBound(object sender, GridItemEventArgs e)
{
    if (e.Item is GridEditFormItem && e.Item.IsInEditMode)//the grid is about to Edit.
    {
        GridEditFormItem item = (GridEditFormItem)e.Item;
        RadComboBox combo = (RadComboBox)item.FindControl("HardCoded");
        combo.SelectedValue = "Something";
    }
}