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

Grid inside a grid

2 Answers 138 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Smiely
Top achievements
Rank 1
Smiely asked on 26 Jan 2011, 11:18 PM
Hi,
I am following http://demos.telerik.com/aspnet-ajax/grid/examples/hierarchy/nestedviewtemplate/defaultcs.aspx this example.
On one of the panels, I have a grid. What I would like to do is, do not display grid if there is no data. Display a single line message.
How can I do that ???

Please help,

Thanks

2 Answers, 1 is accepted

Sort by
0
Princy
Top achievements
Rank 2
answered on 27 Jan 2011, 06:40 AM
Hello Smiley,

You can place a Label/Literal(with Text as display message)  inside RadPageView (which contail Radgrid) and initially make its visibility as 'false'. In PreRender event of Grid check whether the grid is empty or not and display the message accordingly. Sample code is given below.

ASPX:
<telerik:RadMultiPage runat="server" ID="Multipage1" SelectedIndex="0" RenderSelectedPageOnly="false">
     <telerik:RadPageView runat="server" ID="PageView1">
         <asp:Literal ID="Literal1" runat="server" Text="No record to Display" Visible="false"></asp:Literal>
             <telerik:RadGrid runat="server" ID="OrdersGrid" .  .  .>
             </telerik:RadGrid>
     </telerik:RadPageView>
</telerik:RadMultiPage>

C#:
protected void OrdersGrid_PreRender(object sender, EventArgs e)
    {
        RadGrid OrdersGrid = (RadGrid)sender;
        RadPageView pageview = (RadPageView)OrdersGrid.Parent;
        Literal Literal1 = (Literal)pageview.FindControl("Literal1");
        if (OrdersGrid.Items.Count == 0)//checking whether grid is empty
        {
            Literal1.Visible = true;
            OrdersGrid.Visible = false;
        }
    }

Thanks,
Princy.
0
Smiely
Top achievements
Rank 1
answered on 27 Jan 2011, 04:30 PM

 Thanks for replying Princy.  That's a smart solution and it's working also! But now I figured out that I don't have a dedicated Datasource on that grid. It's displaying bunch of values from it's parents datasource.

<telerik:RadPageView runat="server" ID="PageView2" width="500px">   
              
  <legend style="padding: 5px;"><b>Detail Assignment info for TaskID:   <%#Eval("TaskID") %></b>
   </legend>
    <asp:Literal ID = "Literal1" runat="server" Text=" NOT ASSIGNED " Visible="false"></asp:Literal>
    <telerik:RadGrid ID="assignmentRadGrid" runat="server" DataSourceID="nestedObjectDataSource" Skin="WebBlue" Visible="true" onprerender="assignmentRadGrid_PreRender">
     <MasterTableView ShowHeader="true" DataKeyNames="TaskID" AutoGenerateColumns="False">
      <ParentTableRelation><telerik:GridRelationFields  DetailKeyField="TaskID"/></ParentTableRelation>
       <Columns>
       <telerik:GridBoundColumn   HeaderText="Assigned To" DataField="AssignedToName" UniqueName="AssignedTo"></telerik:GridBoundColumn>
         <telerik:GridBoundColumn  HeaderText="Assigned From" DataField="AssignedByName" UniqueName="AssignedBy"></telerik:GridBoundColumn>
           <telerik:GridBoundColumn  HeaderText="Assigned On" DataField="AssignedOn" UniqueName="AssignedOn"></telerik:GridBoundColumn>
             </Columns>
                              </MasterTableView>
                             </telerik:RadGrid>
                             </div>       
                           </telerik:RadPageView>
That "nestedObjectDataSource" is also it's parents grid DataSource. How do I find out "There is no AssignedToName, AssignedByName, AssignedOn for a specific TaskID"

Please help,

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