Search code examples
telerik-grid

how to bind raddropdown from different sources for different rows inside rad grid?


How to bind the telerik rad containg raddropdown to bind from differrent sources in different rows.

Eg:raddropdown.dataSource=new list<string>{"apple","bat","cat"} in row 0
raddropdown.dataSource=new list<string>{"Dog","egg"}in row 1

Somebody please help.


Solution

  • Following is my dropdown inside a grid.

    <telerik:GridTemplateColumn 
        HeaderText="Employees" 
        SortExpression="emp_name" 
        UniqueName="emp_name">
        <ItemTemplate>
            <asp:Label runat="server" ID="lblName" 
            Text='<%#  Eval("emp_name") %>'></asp:Label>
        </ItemTemplate>
        <EditItemTemplate>
            <telerik:RadComboBox runat="server" ID="comboEmployees" 
                DataSourceID="odsEmployees"
                DataTextField="emp_name" 
                DataValueField="emp_id">
            </telerik:RadComboBox>
        </EditItemTemplate>
        <InsertItemTemplate>
            <telerik:RadComboBox runat="server" ID="comboEmployees" 
                DataSourceID="odsEmployees"
                DataTextField="emp_name" 
                DataValueField="emp_id">
            </telerik:RadComboBox>
        </InsertItemTemplate>
    </telerik:GridTemplateColumn>
    

    Define a ObjectDataSource as follows.

    <asp:ObjectDataSource runat="server" ID="odsEmployees" 
        SelectMethod="getListOfEmployees"
        TypeName="ABC.DEF">
    </asp:ObjectDataSource>
    

    Create a code file as follows.

    namespace ABC
    {
        public class DEF{
            public List<tbl_employees> getListOfEmployees(){
                List<tbl_employees> employees = db.tbl_employees
                                                    .Where(e => e.salary > 10000)
                                                    .OrderBy(e => e.emp_name)
                                                    .ToList();
            }
        }
    }