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

How to load data on DropDownList or RadComboBox in RadGrid.

3 Answers 388 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Chris
Top achievements
Rank 1
Chris asked on 11 Feb 2011, 10:22 AM
Hi all
I have a RadGird and using Dropdownlist in RadGrid for User EditMode in RadGrid
Everything's fine, but when Editmode in RadGrid ...how i can load data in DropDownList for uers change value.?
When i debug i has error ..Object reference not set to an instance of an object.
<telerik:RadGrid ID="RadGrid1"
                        AutoGenerateColumns="False"  AllowSorting="False" AllowPaging="True" PageSize="300"
                        runat="server" GridLines="None" Width="100%"
                        onneeddatasource="RadGrid1_NeedDataSource"
                        onupdatecommand="RadGrid1_UpdateCommand"                   
                        onitemdatabound="RadGrid1_ItemDataBound" >
 <telerik:GridTemplateColumn HeaderText="UnitPrice" SortExpression="UnitPrice" UniqueName="TemplateColumn" >
                                    <ItemTemplate>
                                        <asp:Label runat="server" ID="ctract_type" Text='<%# Eval("ddlContact_type") %>'></asp:Label>
                                    </ItemTemplate>
                                    <EditItemTemplate>
                                       <asp:dropdownlist id="ddlContact_type" runat="server" >
                                         </asp:dropdownlist>
                                    </EditItemTemplate>
    </telerik:GridTemplateColumn>
Code behind

 protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
    {

        DropDownList ddlContact_type = new DropDownList();
        ddlContact_type = (DropDownList)e.Item.FindControl("ddlContact_type");
        OracleConnection Conn = new OracleConnection("Data Source=ORCL;Persist Security Info=True;User ID=Test;Password=123;Unicode=True");
        OracleCommand cmd = new OracleCommand();
        cmd.Connection = Conn;
        cmd.CommandType = CommandType.Text;
        cmd.CommandText = "select ID,NAME from contact_type ";
        Conn.Open();
        try
        {
            OracleDataReader OrclReader = cmd.ExecuteReader();

            if (OrclReader.HasRows)
            {
                ddlContact_type.DataSource = OrclReader; //Error Object reference not set to an instance of an object.
               ddlContact_type.DataTextField = "NAME";
                ddlContact_type.DataValueField = "ID";
                ddlContact_type.DataBind();

            }
        }
        finally
        {
            Conn.Close();
        }
    }
Thank you
Chris

3 Answers, 1 is accepted

Sort by
0
Shinu
Top achievements
Rank 2
answered on 11 Feb 2011, 11:41 AM
Hello Chris,

Each row is represented by a GridDataItem or GridEditFormItem object, depending on whether the row is an edit form.
Since the DropDownList is in side EditItemTemplate, you can access it in edit mode only. So you need to access the GridEditFormItem first and then the control. Here is the sample code.

aspx:
<telerik:GridTemplateColumn HeaderText="FirstName" UniqueName="FirstName">
   <ItemTemplate>
      <asp:Label runat="server" ID="ctract_type" Text='<%# Eval("ddlContact_type") %>'></asp:Label>
  </ItemTemplate>
   <EditItemTemplate>
      <asp:DropDownList ID="ddlContact_type" runat="server">
      </asp:DropDownList>
   </EditItemTemplate>
</telerik:GridTemplateColumn>

C#:
protected void RadGrid1_ItemDataBound1(object sender, GridItemEventArgs e)
{
     if (e.Item is GridEditFormItem && e.Item.IsInEditMode)//Edit mode=EditForms
        {
           GridEditFormItem dataItem = e.Item as GridEditFormItem;
           DropDownList drppDown = (DropDownList)dataItem.FindControl("ddlContact_type");
           drppDown.DataSourceID = "SqlDataSource2";
           drppDown.DataTextField = "CategoryName";
           drppDown.DataValueField = "CategoryID";
        }
}

Also take a look at the following documentation
Grid / Accessing Cells and Rows

Thanks,
Shinu.
0
Chris
Top achievements
Rank 1
answered on 13 Feb 2011, 08:18 PM
Hello Shinu
Thank you for your help !
and i have some problem when editmode(inplace , or onform editmode) i can't recieve new values when modify

<telerik:GridTemplateColumn DataField="vn_fullname" HeaderText="Full Name" UniqueName="vn_fullname">
                                       <ItemTemplate>
                                           <asp:Label ID="Label1" runat="server" Text='<%# Eval("vn_fullname") %>'></asp:Label>                           
                                       </ItemTemplate>
                                       <EditItemTemplate>
                                           <telerik:RadTextBox ID="txtvn_fullname" runat="server" Text='<%# Bind("vn_fullname") %>'
                                              MaxLength="50" Skin="Vista">
                                           </telerik:RadTextBox>
                                       </EditItemTemplate>
                                 </telerik:GridTemplateColumn>
                             <telerik:GridBoundColumn  UniqueName="org_id"
                                   DataField="org_id" HeaderText="org_id"  ReadOnly="true" >
                               </telerik:GridBoundColumn>

code behind
 
protected void RadGrid1_UpdateCommand(object source, GridCommandEventArgs e)
    {
        GridEditableItem editedItem = e.Item as GridEditableItem;
 
        string UserID = editedItem.OwnerTableView.DataKeyValues[editedItem.ItemIndex]["ID"].ToString();
 
      string vn_fullname = ((RadTextBox)(editedItem["vn_fullname"].FindControl("txtvn_fullname"))).Text;
 
      //my code update here...
    }

 string vn_fullname  is not change value when modify it .

thansk
0
Shinu
Top achievements
Rank 2
answered on 14 Feb 2011, 09:10 AM
Hello Chris,

Here is a documentation which shows Updating values in-place and with edit forms
Updating values in-place and with edit forms

Thanks,
Shinu.
Tags
Grid
Asked by
Chris
Top achievements
Rank 1
Answers by
Shinu
Top achievements
Rank 2
Chris
Top achievements
Rank 1
Share this question
or