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

Bind RadCombobox OnItemDataBound Using FilterTemplate

2 Answers 210 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Muhammad
Top achievements
Rank 1
Muhammad asked on 05 Jul 2011, 02:52 PM
Hi,

I am using RadGrid and I have defined my radcombobox inside FilterTemplate but I want to bind that control programatically in OnItemDataBound event. I have tried to find out that control using GridDataItem but I am getting nothing. I also tried to find out that control in Grid Item_Created event but still getting nothing. 

After that I use sqldatasource to bind that control but when I load the radgrid, I can't see my radcombobox.

  <telerik:GridTemplateColumn DataField="PortalName" HeaderText="Shop" UniqueName="PortalName"
                HeaderStyle-Width="200px" SortExpression="PortalName">
                <FilterTemplate>
                    <telerik:RadComboBox ID="rcbPortal" DataTextField="PortalName" DataValueField="PortalID" DataSourceID="SqlDataSource1"
                        Height="100px" AppendDataBoundItems="true" SelectedValue='<%# TryCast(Container,GridItem).OwnerTableView.GetColumn("PortalName").CurrentFilterValue %>'
                        runat="server" OnClientSelectedIndexChanged="PortalIndexChanged">
                        <Items>
                            <telerik:RadComboBoxItem Text="All" />
                        </Items>
                    </telerik:RadComboBox>
                    <telerik:RadScriptBlock ID="RadScriptBlock3" runat="server">
                        <script type="text/javascript">
                            function PortalIndexChanged(sender, args) {
                                var tableView = $find("<%# TryCast(Container,GridItem).OwnerTableView.ClientID %>");
                                tableView.filter("PortalName", args.get_item().get_value(), "EqualTo");
                            }
                        </script>
                    </telerik:RadScriptBlock>
                </FilterTemplate>
                <ItemTemplate>
                    <asp:Image ID="imgPortal" runat="server" ImageAlign="AbsBottom"  />
                    <asp:Label ID="lblPortalName" runat="server" Text='<%# Eval("PortalID") %>'></asp:Label>
                </ItemTemplate>
            </telerik:GridTemplateColumn>


Protected Sub rgOrders_ItemCreated(ByVal source As Object, ByVal e As Telerik.Web.UI.GridItemEventArgs) Handles rgOrders.ItemCreated


        If TypeOf e.Item Is GridFilteringItem Then

            Dim rcbShop As RadComboBox = e.Item.FindControl("rcbPortal")


            rcbShop.DataSource = pc.GetPortals()

        End If




   End Sub

2 Answers, 1 is accepted

Sort by
0
Princy
Top achievements
Rank 2
answered on 06 Jul 2011, 06:17 AM
Hello Muhammad,

I have tried the same and it worked as expected. Try calling dataBind() method after populating the RadComboBox.  Here is the code which I tried and which worked as expected. Also please make sure that you have set AllowFilteringByColumn="true"

VB.
Protected Sub RadGrid1_ItemCreated(sender As Object, e As GridItemEventArgs)
    If TypeOf e.Item Is GridFilteringItem Then
        Dim item As GridFilteringItem = DirectCast(e.Item, GridFilteringItem)
        Dim combo As RadComboBox = DirectCast(item.FindControl("rcbPortal"), RadComboBox)
        combo.DataSource = SqlDataSource1
    End If
End Sub

Thanks,
Princy.
0
Muhammad
Top achievements
Rank 1
answered on 06 Jul 2011, 10:12 AM
Thank you so much ... you almost solved it but now new problem arises which is that when I click any item inside the radcombobox I get the following the error.

No property or field 'PortalName' exists in type 'VB$AnonymousType_0`8'


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