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

[Solved] Find asp repeater in RadGrid

2 Answers 264 Views
Grid
This is a migrated thread and some comments may be shown as answers.
jason walsh
Top achievements
Rank 1
jason walsh asked on 15 Dec 2009, 01:48 PM
<telerik:RadGrid ID="RadGrid1" ShowGroupPanel="false" DataSourceID="MediaRelatedDS" Skin="Default" 
            AllowPaging="True" runat="server" AllowSorting="false" OnDataBound="RadGrid1_DataBound" OnPreRender="RadGrid1_PreRender" 
            OnItemDataBound="RadGrid1_ItemDataBound" AllowFilteringByColumn="false" PageSize="10" ShowHeader="False"
            <PagerStyle Mode="NumericPages" /> 
            <MasterTableView TableLayout="Fixed"  
                    nomasterrecordstext="&lt;b class=&quot;noRecords&quot;&gt;No records to display.&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;"
         
       <ItemTemplate> <%# (((GridItem)Container).ItemIndex > 0) ? "</td></tr></table>" : ""%> 
                            <asp:Repeater ID="repPhoto" runat="server"
                     <ItemTemplate> 
                     <div class="mediaThumb"><rel="lightbox-gallery<%#(Eval("PrimaryKeyID").ToString())%>" href="/uploads/images/MediaCoverage/<%#(Eval("Image").ToString()) %>" class="highslide" onclick="return hs.expand (this, { wrapperClassName: 'wide-border'})">thmb</div> 
                     </ItemTemplate> 
                     </asp:Repeater> 


and i am assigning the datasource in the back end code:

    protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e) 
    { 
 
        int itemCount = (sender as RadGrid).MasterTableView.GetItems(GridItemType.Item).Length + (sender as RadGrid).MasterTableView.GetItems(GridItemType.AlternatingItem).Length; 
 
        foreach (GridItem item in (sender as RadGrid).Items) 
        { 
                string itemID = "1"
 
                Repeater repPhoto = (Repeater)e.Item.FindControl("repPhoto"); 
 
               DataTable ds = getMediaImages(itemID); 
 
                repPhoto.DataSource = ds; 
                repPhoto.DataBind(); 
 
        } 
    } 


Keeps throwing "Object reference not set to an instance of an object." I assume that it is not finding the nested repeater!

Please help

2 Answers, 1 is accepted

Sort by
0
Princy
Top achievements
Rank 2
answered on 16 Dec 2009, 09:05 AM
Hello Jason,

Try out the following code to access the nested repeater and see if it helps:
c#:
protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e) 
    { 
        if (e.Item is GridDataItem) 
        { 
            string itemID = "1";  
            GridDataItem item = (GridDataItem)e.Item; 
            Repeater repPhoto = (Repeater)item.FindControl("repPhoto"); 
             
            DataTable ds = getMediaImages(itemID);  
 
            repPhoto.DataSource = ds;  
            repPhoto.DataBind(); 
        } 
    } 

Thanks
Princy.
0
jason walsh
Top achievements
Rank 1
answered on 16 Dec 2009, 09:33 AM
Yeah, that fixed it alright ;)

thanks a mil Princy!
Tags
Grid
Asked by
jason walsh
Top achievements
Rank 1
Answers by
Princy
Top achievements
Rank 2
jason walsh
Top achievements
Rank 1
Share this question
or